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 相关文章推荐
原始XMLHttpRequest方法详情回顾
Nov 28 Javascript
JavaScript作用域与作用域链深入解析
Dec 06 Javascript
JS的参数传递示例介绍
Feb 08 Javascript
Js的Array数组对象详解
Feb 22 Javascript
浅谈JS中json数据的处理
Jun 30 Javascript
jQuery获取attr()与prop()属性值的方法及区别介绍
Jul 06 Javascript
详解基于node的前端项目编译时内存溢出问题
Aug 01 Javascript
mescroll.js上拉加载下拉刷新组件使用详解
Nov 13 Javascript
JavaScript高级函数应用之分时函数实例分析
Aug 03 Javascript
详解微信UnionID作用
May 15 Javascript
vue使用video插件vue-video-player的示例
Oct 03 Javascript
适用于 Vue 的播放器组件Vue-Video-Player操作
Nov 16 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
用header 发送cookie的php代码
2007/03/16 PHP
PHP加密解密实例分析
2015/12/25 PHP
PHP多维数组指定多字段排序的示例代码
2018/05/16 PHP
PHP实现一维数组与二维数组去重功能示例
2018/05/24 PHP
JS控件autocomplete 0.11演示及下载 1月5日已更新
2007/01/09 Javascript
js 函数的副作用分析
2011/08/23 Javascript
jquery.Jwin.js 基于jquery的弹出层插件代码
2012/05/23 Javascript
bootstrap网页框架的使用方法
2016/05/10 Javascript
jQuery Mobile 触摸事件实例
2016/06/04 Javascript
JavaScript面向对象编写购物车功能
2016/08/19 Javascript
Vue中fragment.js使用方法详解
2017/03/09 Javascript
微信小程序实现锚点定位楼层跳跃的实例
2017/05/18 Javascript
详解angularjs中如何实现控制器和指令之间交互
2017/05/31 Javascript
用nodejs实现json和jsonp服务的方法
2017/08/25 NodeJs
修改npm全局安装模式的路径方法
2018/05/15 Javascript
JS实现模糊查询带下拉匹配效果
2018/06/21 Javascript
ng-zorro-antd 入门初体验
2018/12/03 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
解决layer.msg 不居中 ifram中的问题
2019/09/05 Javascript
js+for循环实现字符串自动转义的代码(把后面的字符替换前面的字符)
2020/12/24 Javascript
[01:16:50]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第一场 3月7日
2021/03/11 DOTA
利用Python脚本实现ping百度和google的方法
2017/01/24 Python
Python开发的实用计算器完整实例
2017/05/10 Python
Pycharm无法显示动态图片的解决方法
2018/10/28 Python
Python字典循环添加一键多值的用法实例
2019/01/20 Python
python flask框架实现传数据到js的方法分析
2019/06/11 Python
selenium 安装与chromedriver安装的方法步骤
2019/06/12 Python
Django之使用celery和NGINX生成静态页面实现性能优化
2019/10/08 Python
使用python制作游戏下载进度条的代码(程序说明见注释)
2019/10/24 Python
Python字符串中删除特定字符的方法
2020/01/15 Python
SK-II神仙水美国官网:SK-II美国
2020/02/25 全球购物
励志演讲稿600字
2014/08/21 职场文书
自我检讨书范文
2015/01/28 职场文书
办公室岗位职责
2015/02/04 职场文书
公务员廉洁从政心得体会
2016/01/19 职场文书
SpringBoot使用AOP实现统计全局接口访问次数详解
2022/06/16 Java/Android