`
sanshizi
  • 浏览: 83438 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

javascript 各种编码转换, md5编码

阅读更多
var hexcase=0;var b64pad="";var chrsz=8;
function hex_md5(s){return binl2hex(core_md5(str2binl(s),s.length*chrsz))}
function b64_md5(s){return binl2b64(core_md5(str2binl(s),s.length*chrsz))}
function str_md5(s){return binl2str(core_md5(str2binl(s),s.length*chrsz))}
function hex_hmac_md5(key,data){return binl2hex(core_hmac_md5(key,data))}
function b64_hmac_md5(key,data){return binl2b64(core_hmac_md5(key,data))}
function str_hmac_md5(key,data){return binl2str(core_hmac_md5(key,data))}
function md5_vm_test(){return hex_md5("abc")=="900150983cd24fb0d6963f7d28e17f72"}
function core_md5(x,len){x[len>>5]|=0x80<<((len)%32);x[(((len+64)>>>9)<<4)+14]=len;var a=1732584193;var b=-271733879;var c=-1732584194;var d=271733878;for(var i=0;i<x.length;i+=16){var olda=a;var oldb=b;var oldc=c;var oldd=d;a=md5_ff(a,b,c,d,x[i+0],7,-680876936);d=md5_ff(d,a,b,c,x[i+1],12,-389564586);c=md5_ff(c,d,a,b,x[i+2],17,606105819);b=md5_ff(b,c,d,a,x[i+3],22,-1044525330);a=md5_ff(a,b,c,d,x[i+4],7,-176418897);d=md5_ff(d,a,b,c,x[i+5],12,1200080426);c=md5_ff(c,d,a,b,x[i+6],17,-1473231341);b=md5_ff(b,c,d,a,x[i+7],22,-45705983);a=md5_ff(a,b,c,d,x[i+8],7,1770035416);d=md5_ff(d,a,b,c,x[i+9],12,-1958414417);c=md5_ff(c,d,a,b,x[i+10],17,-42063);b=md5_ff(b,c,d,a,x[i+11],22,-1990404162);a=md5_ff(a,b,c,d,x[i+12],7,1804603682);d=md5_ff(d,a,b,c,x[i+13],12,-40341101);c=md5_ff(c,d,a,b,x[i+14],17,-1502002290);b=md5_ff(b,c,d,a,x[i+15],22,1236535329);a=md5_gg(a,b,c,d,x[i+1],5,-165796510);d=md5_gg(d,a,b,c,x[i+6],9,-1069501632);c=md5_gg(c,d,a,b,x[i+11],14,643717713);b=md5_gg(b,c,d,a,x[i+0],20,-373897302);a=md5_gg(a,b,c,d,x[i+5],5,-701558691);d=md5_gg(d,a,b,c,x[i+10],9,38016083);c=md5_gg(c,d,a,b,x[i+15],14,-660478335);b=md5_gg(b,c,d,a,x[i+4],20,-405537848);a=md5_gg(a,b,c,d,x[i+9],5,568446438);d=md5_gg(d,a,b,c,x[i+14],9,-1019803690);c=md5_gg(c,d,a,b,x[i+3],14,-187363961);b=md5_gg(b,c,d,a,x[i+8],20,1163531501);a=md5_gg(a,b,c,d,x[i+13],5,-1444681467);d=md5_gg(d,a,b,c,x[i+2],9,-51403784);c=md5_gg(c,d,a,b,x[i+7],14,1735328473);b=md5_gg(b,c,d,a,x[i+12],20,-1926607734);a=md5_hh(a,b,c,d,x[i+5],4,-378558);d=md5_hh(d,a,b,c,x[i+8],11,-2022574463);c=md5_hh(c,d,a,b,x[i+11],16,1839030562);b=md5_hh(b,c,d,a,x[i+14],23,-35309556);a=md5_hh(a,b,c,d,x[i+1],4,-1530992060);d=md5_hh(d,a,b,c,x[i+4],11,1272893353);c=md5_hh(c,d,a,b,x[i+7],16,-155497632);b=md5_hh(b,c,d,a,x[i+10],23,-1094730640);a=md5_hh(a,b,c,d,x[i+13],4,681279174);d=md5_hh(d,a,b,c,x[i+0],11,-358537222);c=md5_hh(c,d,a,b,x[i+3],16,-722521979);b=md5_hh(b,c,d,a,x[i+6],23,76029189);a=md5_hh(a,b,c,d,x[i+9],4,-640364487);d=md5_hh(d,a,b,c,x[i+12],11,-421815835);c=md5_hh(c,d,a,b,x[i+15],16,530742520);b=md5_hh(b,c,d,a,x[i+2],23,-995338651);a=md5_ii(a,b,c,d,x[i+0],6,-198630844);d=md5_ii(d,a,b,c,x[i+7],10,1126891415);c=md5_ii(c,d,a,b,x[i+14],15,-1416354905);b=md5_ii(b,c,d,a,x[i+5],21,-57434055);a=md5_ii(a,b,c,d,x[i+12],6,1700485571);d=md5_ii(d,a,b,c,x[i+3],10,-1894986606);c=md5_ii(c,d,a,b,x[i+10],15,-1051523);b=md5_ii(b,c,d,a,x[i+1],21,-2054922799);a=md5_ii(a,b,c,d,x[i+8],6,1873313359);d=md5_ii(d,a,b,c,x[i+15],10,-30611744);c=md5_ii(c,d,a,b,x[i+6],15,-1560198380);b=md5_ii(b,c,d,a,x[i+13],21,1309151649);a=md5_ii(a,b,c,d,x[i+4],6,-145523070);d=md5_ii(d,a,b,c,x[i+11],10,-1120210379);c=md5_ii(c,d,a,b,x[i+2],15,718787259);b=md5_ii(b,c,d,a,x[i+9],21,-343485551);a=safe_add(a,olda);b=safe_add(b,oldb);c=safe_add(c,oldc);d=safe_add(d,oldd)}return Array(a,b,c,d)}
function md5_cmn(q,a,b,x,s,t){return safe_add(bit_rol(safe_add(safe_add(a,q),safe_add(x,t)),s),b)}
function md5_ff(a,b,c,d,x,s,t){return md5_cmn((b&c)|((~b)&d),a,b,x,s,t)}
function md5_gg(a,b,c,d,x,s,t){return md5_cmn((b&d)|(c&(~d)),a,b,x,s,t)}
function md5_hh(a,b,c,d,x,s,t){return md5_cmn(b^c^d,a,b,x,s,t)}
function md5_ii(a,b,c,d,x,s,t){return md5_cmn(c^(b|(~d)),a,b,x,s,t)}
function core_hmac_md5(key,data){var bkey=str2binl(key);if(bkey.length>16)bkey=core_md5(bkey,key.length*chrsz);var ipad=Array(16),opad=Array(16);for(var i=0;i<16;i++){ipad[i]=bkey[i]^0x36363636;opad[i]=bkey[i]^0x5C5C5C5C}var hash=core_md5(ipad.concat(str2binl(data)),512+data.length*chrsz);return core_md5(opad.concat(hash),512+128)}
function safe_add(x,y){var lsw=(x&0xFFFF)+(y&0xFFFF);var msw=(x>>16)+(y>>16)+(lsw>>16);return(msw<<16)|(lsw&0xFFFF)}
function bit_rol(num,cnt){return(num<<cnt)|(num>>>(32-cnt))}
function str2binl(str){var bin=Array();var mask=(1<<chrsz)-1;for(var i=0;i<str.length*chrsz;i+=chrsz)bin[i>>5]|=(str.charCodeAt(i/chrsz)&mask)<<(i%32);return bin}
function binl2str(bin){var str="";var mask=(1<<chrsz)-1;for(var i=0;i<bin.length*32;i+=chrsz)str+=String.fromCharCode((bin[i>>5]>>>(i%32))&mask);return str}
function binl2hex(binarray){var hex_tab=hexcase?"0123456789ABCDEF":"0123456789abcdef";var str="";for(var i=0;i<binarray.length*4;i++){str+=hex_tab.charAt((binarray[i>>2]>>((i%4)*8+4))&0xF)+hex_tab.charAt((binarray[i>>2]>>((i%4)*8))&0xF)}return str}
function binl2b64(binarray){var tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var str="";for(var i=0;i<binarray.length*4;i+=3){var triplet=(((binarray[i>>2]>>8*(i%4))&0xFF)<<16)|(((binarray[i+1>>2]>>8*((i+1)%4))&0xFF)<<8)|((binarray[i+2>>2]>>8*((i+2)%4))&0xFF);for(var j=0;j<4;j++){if(i*8+j*6>binarray.length*32)str+=b64pad;else str+=tab.charAt((triplet>>6*(3-j))&0x3F)}}return str}

 

分享到:
评论

相关推荐

    MD5加密函数(JavaScript实现)

    MD5加密函数(JavaScript实现),一个JS文件,在调用处包含,直接使用其函数,MD5主要的加密方法,JS实现的。JS文件格式是UTF-8编码的,如果想弄成GB2312或其它,可使用编码转换工具转换一下即可。

    md5-js:对约瑟夫·迈尔斯(Joseph Myers)的高性能javascript md5函数的修改,该函数先转换为UTF-8即可对Unicode字符进行哈希处理。 http

    MD5 文件md5.js提供了md5() ,这是... 由于要检查unicode并可能将其转换为UTF-8,因此此函数比Joseph的原始函数慢,但将产生与在UTF-8编码的文本上执行的服务器端md5()函数相同的结果。 在有一个基本的性能测试。

    VSCodeXssEncode:使用转换将字符从一种编码转换为另一种编码。 该工具将帮助您在测试SQL注入,XSS漏洞和站点安全性时对有效负载进行编码

    使用转换将字符从一种编码转换为另一种编码。 该工具将帮助您在测试SQL注入,XSS漏洞和站点安全性时对有效负载进行编码。 转换您选择的区域或转换所有字符。 支持 字符串&lt;=&gt; Base64,Base32,Base16 字符串&lt...

    WEB前端助手(FeHelper)_v6.2.crx

    包括Unicode编码和解码、UTF-8字符串编码和解码、Base64字符串编解码、字符串MD5编码,前端非常实用的工具 图片Base64编码 对图片文件进行base64编码,直接拷贝datauri格式的数据 二维码生成器 能对网址、普通文本...

    helper.rar

    包括Unicode编码和解码、UTF-8字符串编码和解码、Base64字符串编解码、字符串MD5编码,前端非常实用的工具 图片Base64编码 对图片文件进行base64编码,直接拷贝datauri格式的数据 二维码生成器 能对网址、普通文本...

    java开源包7

    用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC框架 nfs-rpc nfs-rpc是一个集成了各种知名通信框架的高性能RPC框架,目前其最好的性能为在采用...

    各种加密解密在线演示

    文字在线加密解密、散列/哈希、BASE64、SHA1、SHA224、SHA256、SHA384、SHA512、MD5、HmacSHA1、HmacSHA224、HmacSHA256、HmacSHA384、HmacSHA512、HmacMD5、urlencode、urldecode

    Helper Master

    Public class ConvertHelper 处理数据类型转换,数制转换、编码转换相关的类 Public class CookieHelper Cookie帮助相关类 Public class CsvHelper CSV文件转换类 Public class DataToExcel 操作EXCEL导出数据...

    前端助手FeHelper插件

    字符串编解码(Unicode/UTF8/Base64/MD5) 代码美化工具(HTML/CSS/JS/XML/SQL) 代码压缩工具(HTML/CSS/JS) Json串格式化(粘贴文本、手动格式化) Json页面美化(页面自动检测并格式化,强制开启) 二维码生成器...

    Web-Handbook:Sosolimited的Java资源和网络编码的资源集合

    有关Javascript和网络编码的资源的集合。 其他工作材料 要将markdown页面转换为html,请使用 。 您将需要包括适当的markdown CSS,如drawing.md所使用的。 我们最终可能会设置一个Makefile以在所有相关的markdown...

    Transformers:包含端点转换器的各种示例

    审批流程如果您希望我们批准您的代码,请注意以下批准过程:将README.md添加到您的转换器,并对其进行详细描述。检查您的代码中是否包含硬编码的密码,令牌或过时JavaScript / TypeScript使用情况(例如var foo; )...

    Python如何读取、写入JSON数据

    你想读写JSON(JavaScript Object Notation)编码格式的数据。 解决方案 json 模块提供了一种很简单的方式来编码和解码JSON数据。其中两个主要的函数是 json.dumps() 和 json.loads() ,要比其他序列化函数库如pickle...

    java图像压缩源码-bookmark:一个java程序员日常书签导航~在线工具,API,帮助手册,资源,阅读

    :文本编码转换 :在线运行代码java、php、C、C++、go、pyphon、nodejs :在线二维码生成 :在线条码生成 :linux命令在线查询 :java代码搜索查看 :代码搜索 :maven jar包查找,依赖关系查看 :在线智能线条作图 :icon...

    Challanges-Python

    编码挑战 每个开发人员都需要培养自己的技能,编码挑战是实现此目标的好方法。...您通常需要多次执行3-5步,因为您忘记了一些因素,文档应该在整个编码过程中完成,但通常不是:) 语言能力 Python Javascript

    Coding-Challenges

    您遵循的一般步骤是: 确定总体问题将其分解为较小的任务为任务编写伪代码将psudeo代码转换为您选择的编程语言测试记录您的解决方案您通常需要多次执行3-5步,因为您忘记了一些因素,文档应该在整个编码过程中完成...

    my-weather-react-app:React中编码的Weather App

    在React中编码的Weather App 该应用程序具有以下突出显示的功能: 显示当前天气和搜索位置的时间单位(摄氏度/华氏度)转换用于将特定城市标记或未标记为喜爱的城市的功能,可以通过指定的下拉列表访问该城市每日...

    objc-guide:Objective-C编码准则

    Objective-C编码约定指南记录了许多最佳实践,这些最佳实践是从十多年来在Microsoft的Apple平台上开发软件(例如的经验中学到的。 这不是样式指南(为此使用 ),而是影响实施的指南。 本文档按语言区域组织。 我们...

    切肉机「Hasher」-crx插件

    哈希:MD5,SHA-1,SHA-2(224,256,384,512),RIPEMD-160,MD4,Whirpool HMAC:MD5,SHA-1,SHA-2(224,256,384,512),RIPEMD -160,MD4 CRC:CRC-8,CRC-16,FCS-16,FCS / CRC-32密码(可与OpenSSL互操作...

    程序开发常用工具chrome扩展

    新工具如果可以提供实现代码就完美了O(∩_∩)O安装方法1: 在 安装方法2: 手动安装 方法3: 安装方法和方法2一致方法3 不定期维护 仅供网络环境特别恶劣的同学使用功能列表功能说明离线使用哈希md5, sha1, sha256, sha...

    C#基类库大全下载--苏飞版

    JsHelper--Javascript操作帮助类,输出各种JS方法,方便不懂JS的人使用,减少代码量 7.JSON 转化类 ConvertJson List转成Json|对象转成Json|集合转成Json|DataSet转成Json|DataTable转成Json|DataReader转成Json等...

Global site tag (gtag.js) - Google Analytics