当前位置:编程学习 > JAVA >>

菜鸟运用加密技术问题

前几天看见网上一帖子,讲如何用加密技术,看了半天看了网上写得,for循环硬是没看懂!结果下来运行不出来,高手指教
package mypackage;
import java.security.*;
public class SecurityTest {


public static void main(String[] args) {
try {
String x="aaa";
MessageDigest md=MessageDigest.getInstance("MD5");
md.update(x.getBytes());
byte[] s=md.digest();
String result="";

for(int i=0;i<=s.length;i++){

result+=Integer.toHexString((0x000000ff & i) | 0xffffff00).substring(6);


}
System.out.println(result);
} catch (Exception e) {
// TODO: handle exception
}
}


}
不管用什么变量都是000102030405060708090a0b0c0d0e0f10 --------------------编程问答-------------------- 为什么不变时因为byte[] s = md.digest();的出来的s的长度始终都是16.然后每次都是
result+=Integer.toHexString((0x000000ff & i) | 0xffffff00).substring(6);
当然所有的结果都是一样的撒 --------------------编程问答-------------------- 个人觉得应该这样改:

public static void main(String[] args) {
try {
String x = "b";
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(x.getBytes());
byte[] s = md.digest();
String result = "";
for (int i = 0; i < s.length; i++) {
result += Integer.toHexString((0x000000ff & s[i]) | 0xffffff00)
.substring(6);

}
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
}
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,