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 事件执行检测代码
Dec 09 Javascript
namespace.js Javascript的命名空间库
Oct 11 Javascript
innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解
Mar 13 Javascript
一张Web前端的思维导图分享
Jul 03 Javascript
在JavaScript中访问字符串的子串
Jul 07 Javascript
理解jquery事件冒泡
Jan 03 Javascript
浅析JavaScript Array和string的转换(推荐)
May 20 Javascript
AngularJS 表达式详细讲解及实例代码
Jul 26 Javascript
简易的JS计算器实现代码
Oct 18 Javascript
Angular2  NgModule 模块详解
Oct 19 Javascript
详解webpack 打包文件体积过大解决方案(code splitting)
Apr 10 Javascript
React倒计时功能实现代码——解耦通用
Sep 18 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
第4章 数据处理-php正则表达式-郑阿奇(续)
2011/07/04 PHP
php中配置文件操作 如config.php文件的读取修改等操作
2012/07/07 PHP
php curl选项列表(超详细)
2013/07/01 PHP
PHP对接微信公众平台消息接口开发流程教程
2014/03/25 PHP
PhpDocumentor 2安装以及生成API文档的方法
2014/05/21 PHP
PDO防注入原理分析以及注意事项
2015/02/25 PHP
PHP实现的蚂蚁爬杆路径算法代码
2015/12/03 PHP
PHP开发实现快递查询功能详解
2019/04/08 PHP
js控制滚动条缓慢滚动到顶部实现代码
2013/03/20 Javascript
如何让你的Lightbox支持滚轮缩放及Base64图片
2014/12/04 Javascript
jQuery搜索同辈元素方法
2015/02/10 Javascript
再谈JavaScript线程
2015/07/10 Javascript
js的form表单提交url传参数(包含+等特殊字符)的两种解决方法
2016/05/25 Javascript
JavaScript数据结构链表知识详解
2016/11/21 Javascript
JS正则表达式学习之贪婪和非贪婪模式实例总结
2016/12/26 Javascript
Vue 仿百度搜索功能实现代码
2017/02/16 Javascript
详解如何用webpack打包一个网站应用项目
2017/07/12 Javascript
vue里面v-bind和Props 利用props绑定动态数据的方法
2018/08/27 Javascript
nodejs更新package.json中的dependencies依赖到最新版本的方法
2018/10/10 NodeJs
vue-cli2与vue-cli3在一台电脑共存的实现方法
2019/09/25 Javascript
uploadify插件实现多个图片上传并预览
2019/09/30 Javascript
使用Vue实现调用接口加载页面初始数据
2019/10/28 Javascript
js仿360开机效果
2019/12/26 Javascript
JS浏览器BOM常见操作实例详解
2020/04/27 Javascript
Python中比较特别的除法运算和幂运算介绍
2015/04/05 Python
介绍Python中几个常用的类方法
2015/04/08 Python
python实现逻辑回归的方法示例
2017/05/02 Python
html5贪吃蛇游戏使用63行代码完美实现
2013/06/25 HTML / CSS
阿根廷首家户外用品制造商和经销商:Montagne
2018/02/12 全球购物
Hobbs官方网站:英国奢华女性时尚服装
2020/02/22 全球购物
地理科学专业毕业生求职信
2013/10/15 职场文书
交通事故检查书范文
2014/01/30 职场文书
一年级小学生评语大全
2014/12/25 职场文书
三好学生竞选稿
2015/11/21 职场文书
SQLServer中JSON文档型数据的查询问题解决
2021/06/27 SQL Server
nginx 添加http_stub_status_module模块
2022/05/25 Servers