JS中使用MD5进行字符串加密

md5.js

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) {/* append padding */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;
}

页面引入上面那个js文件 value是需要加密的内容

var str=  hex_md5(value);

JS中使用MD5进行字符串加密相关推荐

  1. java md5加密长度_java中使用MD5加密算法进行加密

    java中使用MD5加密算法进行加密以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在各种应用系统的开发中 经常需要存储 ...

  2. js中json数组 和 字符串 互转

    js中json数组 和 字符串 互转 const jsonStr1 = JSON.stringify( res.responseObject); //json转字符串.//const area = J ...

  3. js中的concat函数-字符串拼接+数组拼接

    js中的concat函数-字符串拼接+数组拼接 一.concat() 方法用于字符串拼接字符串 let str1 = "abc"let str2 = "123" ...

  4. JS中怎样将时间字符串转换成Date并比较大小

    场景 在js中通过前端日期选择控件获取的时间参数为字符串"2020-09-30" 现在要将其转换为Date类型并与当前日期进行对比,看是否在当前日期之前. 注: 博客: https ...

  5. java和js中判断两个字符串是否相等对比

    链接一: JavaScript中的基本字符串与字符串对象的区别 链接二: JAVA如何判断两个字符串是否相等 链接三: js中的"=="和equals()以及is()三者的区别 在 ...

  6. 使用Md5进行字符串加密

    在业务中,直接将密码存储在数据库中是不安全的,所以需要将密码加密后再存入数据库当中. MD5算法的算法特点如下:         压缩性:针对不同长度待加密的数据.字符串等等,其都可以返回一个固定长度 ...

  7. 关于js中replace()只能替换字符串中第一个对象的问题

    工作中用到js的replace比较多,将一个字符串中某个内容替换成另一个内容,但是往往只找到第一个符合条件的内容后就不往后替换了,可以用正则来解决此问题. var a="aaa,bbb,cc ...

  8. js中的数组和字符串的一些方法

    数组的一些方法: 1.join()和split()方法 <script type="text/javascript"> var x; var a=new Array() ...

  9. JS中的数组和字符串

    1.Array对象用于定义数组 //方式一var arr=new Array(1,2,3);alert(arr);//方式二 var arr=[1,2,3]; alert(arr); //特点:JS数 ...

  10. js中判断两个字符串是否相等

    在javascript判断两个变量值是否相等,可以使用 ==(等同)操作符 或者 ===(恒等)操作符 == 操作符 "等同"操作符,简单判断2个变量值是否相等,变量类型不一致时, ...

最新文章

  1. 关于vmstat,top,ps aux查看的cpu占用率不一致的问题
  2. Redis源代码分析-内存数据结构intset
  3. Overlapped I/O模型深入分析[转]
  4. Mysql学习总结(79)——MySQL常用函数总结
  5. GL和DX中关于纹理操作(包括多重纹理)与混合的问题
  6. 计算机网络基础问题总结
  7. cxf整合spring发布webservices服务端
  8. 软件使用,Microsoft Visual C++运行库合集包
  9. 杜绝网络黑手,谁来保障企业数据安全
  10. python的OOP机制
  11. 关于CPU架构之总结
  12. 移动端那些事儿(二)jquery手势插件之jGestures
  13. 星际传说中的IPFS原理
  14. VS2017中创建使用 XRM 工具常用登录控件的WPF应用程序,适用CRM9.X版本
  15. 【飞书集成自建应用教程】
  16. Android Service之设备存储空间监控
  17. zcmu——1601: 卡斯丁狗去挖矿(01背包-三维数组)
  18. windbg分析崩溃dmp
  19. heartbeat错误报告
  20. w ndows10系统开机,wndows10系统设置开机自动启动adsafe软件的方法

热门文章

  1. 【手写数字识别】基于matlab GUI RBM神经网络手写数字识别【含Matlab源码 1109期】
  2. 【图像去雾】基于matlab GUI直方图均衡化+Retinex理论图像去雾(带面板)【含Matlab源码 706期】
  3. autocoder自动代码生成器_Spring Boot 集成MyBatis Plus代码生成器
  4. windows7局域网传输到mac_计算机三级网络技术(5):局域网技术基础及应用
  5. 全球100ai顶尖科学家_如何为顶尖学校学习AI撰写成功的目标陈述
  6. 停止运行_部门动态丨供水运行不能中断,保障维修从未停止
  7. Linux在文件中查找the字样,Linux文件查找
  8. python:安装pycaret2.2.3(pytorch版本为1.7.1)
  9. 九度教程第28题-堆栈的的使用(栈的使用)
  10. python open函数用法_python中open函数的用法详解