当前位置: 代码迷 >> Java相关 >> 各位大神,小弟在这里加密算法
  详细解决方案

各位大神,小弟在这里加密算法

热度:70   发布时间:2016-04-22 19:40:55.0
各位大神,小弟在这里求一个加密算法!
G码生成算法:
第一步:计算HS = HMAC-SHA-1(K,C),HS长度为20bytes。
第二步:计算Sbits=DT(HS),Sbits是一个长度为31bits二进制字符串。
第三步:计算Snum = StToNum(Sbits),Snum为Sbits的10进制值(0,1,…,231-1)。
第四步:计算PING=Snum mod 10^6,PING为一个长度为6位的10进制数。
DT算法:
第一步:对一个长度为20bytes的字符串String=String[0]…String[19],取String[19]的低4bit值为OffsetBits。
第二步:计算Offset = StToNum(OffsetBits),Offset为Offsetbits的10进制值(0,1,…,15)。
第三步:计算P=String[Offset]…String[Offset+3]。
第四步:返回P的低31bits。

------解决思路----------------------
全用位运算吧,取a的低四位就是a&15
------解决思路----------------------
引用:
Quote: 引用:

全用位运算吧,取a的低四位就是a&15

是这样的 大神 这个算法是先要 用根据两个字符串用MacSAH1加密得到一个20长度的bytes数组,然后取数组的最后一个byte比如说是-218  取-218的低4bit值是咋取

一字节怎么会出现-218,这不越界了吗……byte类型用位运算也可以,就是a&15
------解决思路----------------------
感觉有点奇怪啊
------解决思路----------------------
我就看看  不说话
------解决思路----------------------
先求负值的补码 再与上0x0f 
------解决思路----------------------
加密算法  MD5呢?自己写的一般没这种开源的好。
------解决思路----------------------
公司里做项目一般都禁止开发者用自己写的加密算法