菜鸟运用加密技术问题
前几天看见网上一帖子,讲如何用加密技术,看了半天看了网上写得,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相关