对JS不是很懂。有个方法一直看不懂,高人帮忙分析下function str2blks_MD5(str)
{
nblk = ((str.length + 8) >> 6) + 1;
blks = new Array(nblk * 16);
for(i = 0; i < nblk * 16; i++) blks[i] = 0;
for(i = 0; i < str.length; i++)
blks[i >> 2] |= str.charCodeAt(i) << ((i % 4) * 8);
blks[i >> 2] |= 0x80 << ((i % 4) * 8);
blks[nblk * 16 - 2] = str.length * 8;
return blks;
}1变量nblk为何没有定义
2blks[i >> 2] |= str.charCodeAt(i) << ((i % 4) * 8);是怎么运算的?
{
nblk = ((str.length + 8) >> 6) + 1;
blks = new Array(nblk * 16);
for(i = 0; i < nblk * 16; i++) blks[i] = 0;
for(i = 0; i < str.length; i++)
blks[i >> 2] |= str.charCodeAt(i) << ((i % 4) * 8);
blks[i >> 2] |= 0x80 << ((i % 4) * 8);
blks[nblk * 16 - 2] = str.length * 8;
return blks;
}1变量nblk为何没有定义
2blks[i >> 2] |= str.charCodeAt(i) << ((i % 4) * 8);是怎么运算的?
解决方案 »
- JS动态显示时间的问题
- 界面显示不出来,和JS相关,和浏览器相关
- javascript中的setTimeout方法参数中的方法中的参数怎样放入对象数组呢?
- jquery的问题 很郁闷!
- 怎样在客户端存储数据减少对SERVER的访问
- 请问 javascript 中有无像 vbscript 中的判断日期格式有效的函数: isdate() ?
- ???如何制作一个既可以移动,又可以改变大小的层?主要是鼠标的样式:(十字箭头)(双向箭头(水平、竖直、斜向))
- 请教如何修改一个输入框的名字
- z-index属性只能用在<div>中吗?可以用在<img>或其它标签中吗?
- IE浏览器的问题
- 图片上传浏览 IE7支持,IE8不支持
- js如何获取点击源
2、i >> 2表示右移两位
这句?
他等价于
blks[i >> 2] = blks[i >> 2] | str.charCodeAt(i) << ((i % 4) * 8);这样没问题了吧