js将URL网址转为16进制加密与解密函数


Posted in Javascript onMarch 04, 2020

十六进制(Hexadecimal)是计算机中数据的一种表示方法。同日常生活中的表示法不一样,它由0-9,A-F组成,字母不区分大小写。与10进制的对应关系是:0-9对应0-9;A-F对应10-15;N进制的数可以用0~(N-1)的数表示,超过9的用字母A-F。不同电脑系统、编程语言对于16进制数值有不同的表示方式:如增加0x前缀。

这里推荐一个在线转换的小工具方便大家使用:http://tools.3water.com/transcoding/decode_encode_tool

php函数:

bin2hex(str)将字符串转换成16进制
bin2hex(hex)将16进制转换成字符串

下面的函数都是单个转换

字符串转16进制

function strToHexCharCode(str) {
if(str === "")


return "";

var hexCharCode = [];

hexCharCode.push("0x"); 

for(var i = 0; i < str.length; i++) {


hexCharCode.push((str.charCodeAt(i)).toString(16));

}

return hexCharCode.join("");
}

16进制转字符串

function hexCharCodeToStr(hexCharCodeStr) {
var trimedStr = hexCharCodeStr.trim();

var rawStr = trimedStr.substr(0,2).toLowerCase() === "0x"?trimedStr.substr(2):trimedStr;

var len = rawStr.length;

if(len % 2 !== 0) {


alert("Illegal Format ASCII Code!");


return "";

}

var curCharCode;

var resultStr = [];

for(var i = 0; i < len;i = i + 2) {


curCharCode = parseInt(rawStr.substr(i, 2), 16); // ASCII Code Value


resultStr.push(String.fromCharCode(curCharCode));

}

return resultStr.join("");
}

三水点靠木修改的一个支持将网址转换为\x编码的

function strToHex3water(str) {
if(str === "")


return "";

var hexCharCode = [];

for(var i = 0; i < str.length; i++) {
		hexCharCode.push("\\x"); 

	
hexCharCode.push((str.charCodeAt(i)).toString(16));

}

return hexCharCode.join("");
}

例如

document.write(strToHex3water(”https://3water.com“));

输出

\x68\x74\x74\x70\x73\x3a\x2f\x2f\x77\x77\x77\x2e\x6a\x62\x35\x31\x2e\x6e\x65\x74

想看看对不是,直接用js的alert或document.write("")

即可看到加密的字符串,方便隐藏网址与字符等。

测试的时候也可以在chrome中定义例如

str="\x68\x74\x74\x70\x73\x3a\x2f\x2f\x77\x77\x77\x2e\x6a\x62\x35\x31\x2e\x6e\x65\x74";

js将URL网址转为16进制加密与解密函数

下面是补充

Js字符串与十六进制的相互转换

开发过程中,字符串与十六进、二进制之间的相互转换常常会用到,尤其是涉及到中文的加密时,就需要把中文转换为十六进制。下面说说具体的转换方法。

1、字符串转换为十六进制

主要使用 charCodeAt()方法,此方法返回一个字符的 Unicode 值,该字符位于指定索引位置。

function stringToHex(str){

 var val="";


 for(var i = 0; i < str.length; i++){



 if(val == "")




 val = str.charCodeAt(i).toString(16);



 else




 val += "," + str.charCodeAt(i).toString(16);


 }


 return val;

 }

调用方法:

var str = "abcde";
stringToHex(str);

2、十六进制转换为字符串

主要使用 fromCharCode()方法,此方法将 Unicode 码转换为与之对应的字符

function hexToString(str){

 var val="";


 var arr = str.split(",");


 for(arr i = 0; i < arr.length; i++){



 val += arr[i].fromCharCode(i);


 }


 return val;

 }

调用方法:

var str = "676865";

stringToHex(str);

3、用 parseInt() 方法转换

parseInt(string, radix) 方法只能转换 String 类型,对其它类型都返回 NaN(非数字)。string 表示待转换的字符,radix 表示要转为的进制,值介于 2 ~ 36 之间。

parseInt("bc",16); //表示把字符串bc转换为16进制,结果:188

parseInt("10",8); //表示把字符串10转换为8进制,结果:8

parseInt("10",2); //表示把字符串10转换为2进制,结果:2

Javascript \x 反斜杠x 16进制 编解码

js 里 \x 开头的通常是16进制编码的数据,下面代码实现编解码:

解码

function decode(str){
return str.replace(/\\x(\w{2})/g,function(_,$1){ return String.fromCharCode(parseInt($1,16)) });
}

eg.
decode('\x5f\x63\x68\x61\x6e\x67\x65\x49\x74\x65\x6d\x43\x72\x6f\x73\x73\x4c\x61\x79\x65\x72')

"_changeItemCrossLayer"

编码

function encode(str){
return str.replace(/(\w)/g,function(_,$1){ return "\\x"+ $1.charCodeAt(0).toString(16) });
}

eg.

encode("_changeItemCrossLayer")

"\x5f\x63\x68\x61\x6e\x67\x65\x49\x74\x65\x6d\x43\x72\x6f\x73\x73\x4c\x61\x79\x65\x72"

以上就是js将URL网址转为16进制加密与解密函数的详细内容,更多关于js将字符转换为16进制的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
类似CSDN图片切换效果脚本
Sep 17 Javascript
jQuery each()方法的使用方法
Mar 18 Javascript
基于jQuery实现左右div自适应高度完全相同的代码
Aug 09 Javascript
利用ajaxfileupload插件实现文件上传无刷新的具体方法
Jun 08 Javascript
Jquery easyUI 更新行示例
Mar 06 Javascript
PageSwitch插件实现100种不同图片切换效果
Jul 28 Javascript
javascript中caller和callee详解
Aug 10 Javascript
jQuery实现对无序列表的排序功能(附demo源码下载)
Jun 25 Javascript
动手写一个angular版本的Message组件的方法
Dec 16 Javascript
vue 插件的方法代码详解
Jun 06 Javascript
vue3修改link标签默认icon无效问题详解
Oct 09 Javascript
js实现AI五子棋人机大战
May 28 Javascript
基于node+websocket+html实现腾讯课堂聊天室聊天功能
Mar 04 #Javascript
VUE实现Studio管理后台之鼠标拖放改变窗口大小
Mar 04 #Javascript
微信小程序如何加载数据库真实数据的实现
Mar 04 #Javascript
微信小程序开发搜索功能实现(前端+后端+数据库)
Mar 04 #Javascript
微信小程序云函数添加数据到数据库的方法
Mar 04 #Javascript
jquery实现垂直手风琴菜单
Mar 04 #jQuery
JS数据类型(基本数据类型、引用数据类型)及堆和栈的区别分析
Mar 04 #Javascript
You might like
我的论坛源代码(九)
2006/10/09 PHP
PHP调用MySQL的存储过程的实现代码
2008/08/12 PHP
php判断终端是手机还是电脑访问网站的思路及代码
2013/04/24 PHP
Yii2.0 Basic代码中路由链接被转义的处理方法
2016/09/21 PHP
php压缩文件夹最新版
2018/07/18 PHP
利用XMLHTTP传递参数在另一页面执行并刷新本页
2006/10/26 Javascript
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
2015/12/31 Javascript
jQuery实现可拖拽3D万花筒旋转特效
2017/01/03 Javascript
对于Javascript 执行上下文的全面了解
2017/09/05 Javascript
vue 自定义提示框(Toast)组件的实现代码
2018/08/17 Javascript
jquery.pager.js实现分页效果
2019/07/29 jQuery
JS实现的碰撞检测与周期移动完整示例
2019/09/02 Javascript
JavaScript实现简单的图片切换功能(实例代码)
2020/04/10 Javascript
js+h5 canvas实现图片验证码
2020/10/11 Javascript
[54:09]RNG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
Python ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
2014/06/10 Python
Python中__init__和__new__的区别详解
2014/07/09 Python
Python中转换角度为弧度的radians()方法
2015/05/18 Python
python妹子图简单爬虫实例
2015/07/07 Python
简单谈谈Python流程控制语句
2016/12/04 Python
Python输出带颜色的字符串实例
2017/10/10 Python
python smtplib模块自动收发邮件功能(二)
2018/05/22 Python
django模板结构优化的方法
2019/02/28 Python
python实现文件助手中查看微信撤回消息
2019/04/29 Python
简单了解django orm中介模型
2019/07/30 Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
2019/08/31 Python
python单例模式原理与创建方法实例分析
2019/10/26 Python
通过Turtle库在Python中绘制一个鼠年福鼠
2020/02/03 Python
俄罗斯旅游网站:Tripadvisor俄罗斯
2017/03/21 全球购物
北美Newegg打造的全球尖货海购平台:tt海购
2018/09/28 全球购物
Perfume’s Club意大利官网:欧洲美妆电商
2019/05/03 全球购物
《最佳路径》教学反思
2014/04/13 职场文书
中秋手机店促销方案
2014/06/16 职场文书
查摆问题自我剖析材料
2014/08/18 职场文书
2015年党风廉政建设目标责任书
2015/05/08 职场文书
Pyhton爬虫知识之正则表达式详解
2022/04/01 Python