MD5加密过程简析(以111111为例)
来源:互联网 发布:淘宝模版免费一键装修 编辑:程序博客网 时间:2024/06/14 00:46
1.本文是通过html调用JS方法进行加密,具体步骤是按MD5的加密脚本说明,以hex_md5加密111111为例
/*
* Perform a simple self-test to see if the VM is working
*/
function md5_vm_test()
{
var password=document.getElementById("password");
show.innerHTML="password的MD5(hex_md5)加密后是:"+hex_md5(password.value);
}
function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}
2.str2binl(s)函数
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;
}
mash是256(1的左移8位)-1。
i的右移8位分别为0,0,0,0,1,1。
得出结果为bin[0]=825307441,bin[1]=12593.
3.function core_md5(x, len)
本函数通过调用一个个复杂的位运输,得到a,b,c,d四个变化后的数字。
验算的a:412280726.b:750214806.c:-582376046.d:302068570
4.binl2hex函数,将数值通过位运算从0123456789abcdef取得一个字符。
/*
* Convert an array of little-endian words to a hex string.
*/
function binl2hex(binarray)
{
var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
alert(binarray.length);
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;
}
最终结果为96e79218965eb72c92a549dd5a330112.
这个算法只是字符的变化,没有涉及到密匙的问题,不知道有没有反解算法。
不过好像没听过有,都是调用数据库写入的信息获取的。
- MD5加密过程简析(以111111为例)
- MD5加密过程学习
- MD5加密(输出后为大写字母)
- java32为md5加密
- MD5加密过程(给指定的字符串设置MD5加密)
- MD5加密,解释一下这个过程
- C#MD5为密码加密
- java 为密码md5加密
- OpenSSL 消息摘要算法 以 MD5 为例
- 详解汇编系统调用过程(以printf为例)
- 软件破解过程详解(以Paw软件为例)
- nova api执行过程(以nova list为例)
- SQL语句的执行过程(以oracle为例)
- jsp 编译过程(以tomcat为例)
- jsp 编译过程(以tomcat为例)
- 以wordcount为例详解shuffle过程
- MD5加密(密码加密)
- MD5 加密(1)
- 在对话框中加入属性页
- 细说Cookie
- JAVA-面向对象之继承
- failed to lazily initialize a collection of role:XXX, no session
- Spring获取Bean的几种方式
- MD5加密过程简析(以111111为例)
- X264 - Video Pulldown of Parameters
- 使用pager-taglib的jar包实现分页的方法
- Dijstra算法---普通版、优先队列优化版、堆优化版
- JQuery 操作/获取 table
- 浅谈利用antlr写一个小作业1
- JAVA-面向对象之抽象类
- 堆排序,(大顶堆)
- P2P网上贷款平台