请问,问什么用MD5,SHA,HmacMD5加密同一数据后不一致?

xiaoqiang 2011-08-07 05:41:27
import java.security.MessageDigest;

import javax.crypto.KeyGenerator;
import javax.crypto.Mac;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

public class Coder {
public static final String KEY_SHA="SHA";
public static final String KEY_MD5="MD5";
public static final String KEY_MAC="HmacMD5";

public static byte[] encryptMD5(byte[] data) throws Exception
{
MessageDigest md5=MessageDigest.getInstance(KEY_MD5);
md5.update(data);
return md5.digest();
}
public static byte[] encryptSHA(byte[] data) throws Exception
{
MessageDigest sha=MessageDigest.getInstance(KEY_SHA);
sha.update(data);
return sha.digest();
}
public static String initMacKey() throws Exception
{
KeyGenerator kg=KeyGenerator.getInstance(KEY_MAC);
SecretKey sk=kg.generateKey();
return encryptBASE64(sk.getEncoded());
}
public static byte[] encryptHMAC(byte[] data,String key) throws Exception
{
SecretKey sk=new SecretKeySpec(decryptBASE64(key),KEY_MAC);
Mac mac=Mac.getInstance(sk.getAlgorithm());
mac.init(sk);
return mac.doFinal(data);
}
public static void main(String[] args) throws Exception {
String s="简单加密";
byte[] sb=s.getBytes();
System.out.println("MD5加密同一内容:");
System.out.println(encryptMD5(sb));
System.out.println(encryptMD5(sb));

System.out.println("SHA加密同一内容:");
System.out.println(encryptSHA(sb));
System.out.println(encryptSHA(sb));

System.out.println("Hmac加密同一内容:");
String key=initMacKey();
System.out.println(encryptHMAC(sb,key));
System.out.println(encryptHMAC(sb,key));




}

}


运行结果:

MD5加密同一内容:
[B@1e0be38
[B@1e859c0
SHA加密同一内容:
[B@1ded0fd
[B@16a9d42
Hmac加密同一内容:
[B@1968e23
[B@14da8f4
...全文
212 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoqiang 2011-08-07
  • 打赏
  • 举报
回复
有道理,这个没有注意到,真是太感谢你了.....
阳明 to life 2011-08-07
  • 打赏
  • 举报
回复
你输出的是Byte数组的地址。。。。
数组是没有重写toString的

51,409

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧