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 相关文章推荐
动态加载js文件 document.createElement
Oct 14 Javascript
索趣科技的答案
Feb 07 Javascript
javascript获取xml节点的最大值(实现代码)
Dec 11 Javascript
JQuery调用绑定click事件的3种写法
Mar 28 Javascript
jQuery判断多个input file 都不能为空的例子
Jun 23 Javascript
整理AngularJS框架使用过程当中的一些性能优化要点
Mar 05 Javascript
jQuery插件datatables使用教程
Apr 21 Javascript
详谈jQuery Ajax(load,post,get,ajax)的用法
Mar 02 Javascript
Require.JS中的几种define定义方式示例
Jun 01 Javascript
vue.js给动态绑定的radio列表做批量编辑的方法
Feb 28 Javascript
浅谈Vue Element中Select下拉框选取值的问题
Mar 01 Javascript
vue实现购物车小案例
Sep 27 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
使用dump函数,给php加断点测试
2013/06/25 PHP
PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
2014/05/04 PHP
PHP中的Streams详细介绍
2014/11/12 PHP
脚本吧 - 幻宇工作室用到js,超强推荐expand.js
2006/12/23 Javascript
javascript 日期时间 转换的方法
2013/02/21 Javascript
基于jQuery实现Div窗口震动特效代码-代码简单
2015/08/28 Javascript
js仿百度切换皮肤功能(html+css)
2016/07/10 Javascript
vue多级多选菜单组件开发
2020/09/08 Javascript
使用gulp搭建本地服务器并实现模拟ajax
2017/04/05 Javascript
bootstrap的常用组件和栅格式布局详解
2017/05/02 Javascript
jQuery表单验证之密码确认
2017/05/22 jQuery
Vuejs在v-for中,利用index来对第一项添加class的方法
2018/03/03 Javascript
vue采用EventBus实现跨组件通信及注意事项小结
2018/06/14 Javascript
Mint UI实现A-Z字母排序的城市选择列表
2018/12/28 Javascript
egg.js的基本使用和调用数据库的方法示例
2019/05/18 Javascript
js实现AI五子棋人机大战
2020/05/28 Javascript
javascript实现计算器功能
2020/03/30 Javascript
vue自定义组件实现双向绑定
2021/01/13 Vue.js
Python赋值语句后逗号的作用分析
2015/06/08 Python
Python 40行代码实现人脸识别功能
2017/04/02 Python
python查询mysql,返回json的实例
2018/03/26 Python
python:接口间数据传递与调用方法
2018/12/17 Python
使用Python操作FTP实现上传和下载的方法
2019/04/01 Python
python字典的遍历3种方法详解
2019/08/10 Python
浅谈python中统计计数的几种方法和Counter详解
2019/11/07 Python
Python 保存加载mat格式文件的示例代码
2020/08/04 Python
俄罗斯在线手表和珠宝商店:AllTime
2019/09/28 全球购物
简述进程的启动、终止的方式以及如何进行进程的查看
2014/02/20 面试题
代办委托书怎样写
2014/04/08 职场文书
学校关爱留守儿童活动方案
2014/08/27 职场文书
小学生国庆65周年演讲稿范文(2篇)
2014/09/21 职场文书
2014年学习委员工作总结
2014/11/14 职场文书
2015医德医风个人工作总结
2015/04/02 职场文书
2015年安全生产管理工作总结
2015/05/25 职场文书
《我在为谁工作》:工作的质量往往决定生活的质量
2019/12/27 职场文书
Python-OpenCV实现图像缺陷检测的实例
2021/06/11 Python