当前位置: 编程技术>WEB前端
jquery插件开发之实现md5插件
来源: 互联网 发布时间:2014-08-25
本文导语: 方法返回的是一串十进制数,在jquery1.9.2下测试通过。 代码如下:(function($){ $.md5 = function(o) { if(null === o) { return 'null'; } if(typeof o != "string") { return 'null'; } //计算填充的长度 var fill_data_len = 0; var data_len = o.len...
方法返回的是一串十进制数,在jquery1.9.2下测试通过。
代码如下:
(function($){
$.md5 = function(o) {
if(null === o) {
return 'null';
}
if(typeof o != "string") {
return 'null';
}
//计算填充的长度
var fill_data_len = 0;
var data_len = o.length;
var d_l_mod = data_len % MD5_BASE_LEN;
if(0 != d_l_mod)
fill_data_len = MD5_BASE_LEN - d_l_mod;
if(fill_data_len < 8)
fill_data_len += MD5_BASE_LEN;
var buf = new Array(data_len + fill_data_len);
for(var i = 0;i < data_len;i++)
buf[i] = o.charCodeAt(i);
var msg_bit_len = data_len * BYTE_BIT_LEN
buf[data_len] = FIRST_FILL_BYTE;
for(var i = 0;i < 4;i++) {
buf[data_len + fill_data_len - 8 + i] =
((msg_bit_len & (0x000000ff > (i * 8));
}
var md5_c = [MD5_A,MD5_B,MD5_C,MD5_D];
var md5_code = [MD5_A,MD5_B,MD5_C,MD5_D];
for(var m = 0;m < data_len + fill_data_len;m += 64) {
var buf_p = new Array(16);
for(var i = 0;i < 16;i++) {
buf_p[i] = 0;
for(var j = 0;j < 4;j++) {
buf_p[i]