首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Java中使用SHA-512对密码进行哈希处理?

如何在Java中使用SHA-512对密码进行哈希处理?
EN

Stack Overflow用户
提问于 2015-10-13 00:03:25
回答 6查看 100K关注 0票数 42

我一直在研究Java String加密技术,不幸的是,我还没有找到任何好的教程如何在Java语言中使用SHA-512散列字符串;我读了一些关于MD5和Base64的博客,但它们并不像我想的那样安全(实际上,Base64不是一种加密技术),所以我更喜欢SHA-512。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2015-10-13 00:13:23

您可以将其用于SHA-512

代码语言:javascript
复制
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public String get_SHA_512_SecurePassword(String passwordToHash, String salt){
    String generatedPassword = null;
    try {
        MessageDigest md = MessageDigest.getInstance("SHA-512");
        md.update(salt.getBytes(StandardCharsets.UTF_8));
        byte[] bytes = md.digest(passwordToHash.getBytes(StandardCharsets.UTF_8));
        StringBuilder sb = new StringBuilder();
        for(int i=0; i< bytes.length ;i++){
            sb.append(Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1));
        }
        generatedPassword = sb.toString();
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    }
    return generatedPassword;
}
票数 76
EN

Stack Overflow用户

发布于 2018-07-03 03:16:23

使用Guava

代码语言:javascript
复制
Hashing.sha512().hashString(s, StandardCharsets.UTF_8).toString()
票数 10
EN

Stack Overflow用户

发布于 2015-10-13 14:38:44

使用Apache Commons Crypt,它的特色是基于SHA-512的crypt()函数,这些函数生成的加盐哈希甚至与libc的crypt兼容,因此也可以在PHP/Perl/Python/C和大多数数据库中使用。

https://commons.apache.org/proper/commons-codec/apidocs/org/apache/commons/codec/digest/Crypt.html#Crypt%28%29

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

https://stackoverflow.com/questions/33085493

复制
相关文章

相似问题

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