JAVA的md5解密后怎么是乱码,问题出在哪里啊

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA的md5解密后怎么是乱码,问题出在哪里啊相关的知识,希望对你有一定的参考价值。

像12345678加密后成这样%�Z҃�@
�d�mq<�

%ユZメΜ@
ヌmq<ュ

这个很正常。加密是将字节按照一定的规则进行了转换,转换后出什么样的怪字符都是正常的。
一般的做法是将加密后的byte数组转换为十六进制的字符串。

---------------------------------------------------------------------------------------------------------
import java.security.MessageDigest;

public class Main
public static void main(String[] args) throws Exception
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] b = md.digest("12345678".getBytes());
System.out.println(new String(b));
String result = "";
for (int i = 0; i < b.length; i++)
String tmp = Integer.toHexString(b[i] & 0xFF);
if (tmp.length() == 1)
result += "0" + tmp;
else
result += tmp;



System.out.println(result);



运行结果
-------------------------------

%ユZメΜ@
ヌmq<ュ
25d55ad283aa400af464c76d713c07ad
参考技术A 这个很正常,要是想要显示的不是这样的话,可以在MD5处理的时候不做hash处理,然后将MD5后的值进行BASE64处理 参考技术B MD5是单向加密 不能解密
加密后应该是散列码 如果出现乱码的话……看看你的字符集是不是有问题追问

写了一个加密的工具类,用JUNIT测试的时候就出上面的那种乱码

追答

很难说具体的情况,在没有代码的情况下……
不行就换个代码

MD5是怎么加密的?

1、要有md5加密函数
2、使用这个函数
比如b/s程序 md5一般都是一个文件
需要用到md5的函数的时候 include这个文件
还是 md5(password,16) 就是调用这个函数 password是 变量名16 加密长度
参考技术A MD5 不是加密,是单向散列值计算。MD5 是国际通用的散列函数,在应用上不可破解。 参考技术B 说作加密也没错吧,上次好像说中国人找到了MD5的什么冲突情况啊,就是离破解不远了

以上是关于JAVA的md5解密后怎么是乱码,问题出在哪里啊的主要内容,如果未能解决你的问题,请参考以下文章

md5 加密,既然无法解密,那这个加密的意义有啥呢? 对文件加密后怎么返回原值呢?

asp使用MD5加密的密码登录怎么解决?

rsa解密乱码,重启应用后正常

用java压缩文件,中文文件名成了乱码。 问题应该是出在流里了。 要怎么解决呢?

ios 怎么使用md5进行加密

java,rsa加解密在本地正常,部署到tomcat上加解密后出现乱码。