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 相关文章推荐
jQuery Flash/MP3/Video多媒体插件
Jan 18 Javascript
javascript克隆对象深度介绍
Nov 20 Javascript
jquery ajax修改全局变量示例代码
Nov 08 Javascript
jquery实现简单合拢与展开网页面板的方法
Sep 01 Javascript
详解JS正则replace的使用方法
Mar 06 Javascript
jQuery移动端图片上传组件
Jun 12 Javascript
微信小程序 图片加载(本地,网路)实例详解
Mar 10 Javascript
React.Js添加与删除onScroll事件的方法详解
Nov 03 Javascript
分析javascript原型及原型链
Mar 18 Javascript
Vue中使用vee-validate表单验证的方法
May 09 Javascript
通过JavaScript下载文件到本地的方法(单文件)
Mar 17 Javascript
解决Vue watch里调用方法的坑
Nov 07 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
ThinkPHP实现非标准名称数据表快速创建模型的方法
2014/11/29 PHP
php批量删除超链接的实现方法
2015/10/19 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
2019/05/23 PHP
jQuery插件 selectToSelect使用方法
2013/10/02 Javascript
jquery trigger伪造a标签的click事件取代window.open方法
2014/06/23 Javascript
JS实现的颜色实时渐变效果完整实例
2016/03/25 Javascript
Window.Open打开窗体和if嵌套代码
2016/04/15 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
2016/06/21 Javascript
浅谈Javascript数据属性与访问器属性
2016/07/26 Javascript
Vue.js事件处理器与表单控件绑定详解
2017/03/20 Javascript
详解如何在 vue 项目里正确地引用 jquery 和 jquery-ui的插件
2017/06/01 jQuery
实现div滚动条默认最底部以及默认最右边的示例代码
2017/11/15 Javascript
让你5分钟掌握9个JavaScript小技巧
2018/06/09 Javascript
对 Vue-Router 进行单元测试的方法
2018/11/05 Javascript
React中使用外部样式的3种方式(小结)
2019/05/28 Javascript
JS实现纵向轮播图(初级版)
2020/01/18 Javascript
Auto.JS实现抖音刷宝等刷视频app,自动点赞,自动滑屏,自动切换视频功能
2020/05/08 Javascript
一篇文章带你从零快速上手Rollup
2020/09/07 Javascript
jquery实现淡入淡出轮播图效果
2020/12/13 jQuery
在Python中使用cookielib和urllib2配合PyQuery抓取网页信息
2015/04/25 Python
python实现12306火车票查询器
2017/04/20 Python
python获取网页中所有图片并筛选指定分辨率的方法
2018/03/31 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
2018/09/04 Python
Python设计模式之享元模式原理与用法实例分析
2019/01/11 Python
在Python中获取操作系统的进程信息
2019/08/27 Python
使用HTML5 Canvas API控制字体的显示与渲染的方法
2016/03/24 HTML / CSS
Dr. Martens马汀博士法国官网:马丁靴鼻祖
2020/01/15 全球购物
给交警的表扬信
2014/01/12 职场文书
市场营销方案范文
2014/03/11 职场文书
入党推优材料
2014/06/02 职场文书
2014机关党员干部“正风肃纪”思想汇报
2014/09/15 职场文书
代理人委托书
2014/09/16 职场文书
2014年财务工作自我评价
2014/09/23 职场文书
2014年文明创建工作总结
2014/11/25 职场文书
幼儿园教师节活动总结
2015/03/23 职场文书
使用PostGIS完成两点间的河流轨迹及流经长度的计算(推荐)
2022/01/18 PostgreSQL