首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在java中解码md5加密

在java中解码md5加密
EN

Stack Overflow用户
提问于 2016-11-09 17:08:15
回答 2查看 14.9K关注 0票数 2
代码语言:javascript
复制
public static String convertToMD5(String input) throws Exception {
    String md5 = null;
    if (null == input)
        return null;
    try {
        // Create MessageDigest object for MD5
        MessageDigest digest = MessageDigest.getInstance("MD5");
        // Update input string in message digest
        digest.update(input.getBytes(), 0, input.length());
        // Converts message digest value in base 16 (hex)
        md5 = new BigInteger(1, digest.digest()).toString(16);
    } catch (NoSuchAlgorithmException e) {

        throw e;
    }
    return md5;
}

用这段代码加密我想解码的字符串,将md5加密为普通字符串?你能帮上忙吗

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-09 17:38:30

要添加到@dit的答案上,您只有一个选项;例如,比较MD5字符串。MD5("cat") == MD5("cat"),没有办法从MD5("cat")中派生出"cat",因为如前所述,它是一个散列函数。

下面是一些你可以用来比较的东西:

代码语言:javascript
复制
public static boolean matching(String orig, String compare){
    String md5 = null;
    try{
        MessageDigest md = MessageDigest.getInstance("MD5");
        md.update(compare.getBytes());
        byte[] digest = md.digest();
        md5 = new BigInteger(1, digest()).toString(16);

        return md5.equals(orig);

    } catch (NoSuchAlgorithmException e) {
        return false;
    }

    return false;
}

然后你可以调用matching("d077f244def8a70e5ea758bd8352fcd8", "cat");,它将返回true,如果是matching(MD5("x"), "y"),它将返回false。

票数 1
EN

Stack Overflow用户

发布于 2016-11-09 17:12:46

md5不是一种加密算法。它是一个hash function。无法对哈希字符串进行解码。原始字符串被“销毁”/永远散列。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40503201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档