首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >SHA1的Java字符串

SHA1的Java字符串
EN

Stack Overflow用户
提问于 2011-02-04 15:22:17
回答 8查看 282.8K关注 0票数 168

我正在尝试用Java语言做一个简单的字符串到SHA1的转换器,这就是我得到的……

代码语言:javascript
复制
public static String toSHA1(byte[] convertme) {
    MessageDigest md = null;
    try {
        md = MessageDigest.getInstance("SHA-1");
    }
    catch(NoSuchAlgorithmException e) {
        e.printStackTrace();
    } 
    return new String(md.digest(convertme));
}

当我传递toSHA1("password".getBytes())时,我得到了[�a�ɹ??�%l�3~��.我知道这可能是一个简单的编码修复,就像UTF-8,但是有人能告诉我应该怎么做才能得到我想要的5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8吗?还是说我做得完全错了?

EN

回答 8

Stack Overflow用户

发布于 2012-01-31 05:43:55

这是我将字符串转换为sha1的解决方案。它在我的Android应用程序中运行良好:

代码语言:javascript
复制
private static String encryptPassword(String password)
{
    String sha1 = "";
    try
    {
        MessageDigest crypt = MessageDigest.getInstance("SHA-1");
        crypt.reset();
        crypt.update(password.getBytes("UTF-8"));
        sha1 = byteToHex(crypt.digest());
    }
    catch(NoSuchAlgorithmException e)
    {
        e.printStackTrace();
    }
    catch(UnsupportedEncodingException e)
    {
        e.printStackTrace();
    }
    return sha1;
}

private static String byteToHex(final byte[] hash)
{
    Formatter formatter = new Formatter();
    for (byte b : hash)
    {
        formatter.format("%02x", b);
    }
    String result = formatter.toString();
    formatter.close();
    return result;
}
票数 70
EN

Stack Overflow用户

发布于 2013-11-04 18:38:18

使用Guava Hashing class

代码语言:javascript
复制
Hashing.sha1().hashString( "password", Charsets.UTF_8 ).toString()
票数 56
EN

Stack Overflow用户

发布于 2014-01-30 16:10:19

这是一个简单的解决方案,可以在将字符串转换为十六进制格式时使用:

代码语言:javascript
复制
private static String encryptPassword(String password) throws NoSuchAlgorithmException, UnsupportedEncodingException {

    MessageDigest crypt = MessageDigest.getInstance("SHA-1");
    crypt.reset();
    crypt.update(password.getBytes("UTF-8"));

    return new BigInteger(1, crypt.digest()).toString(16);
}
票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4895523

复制
相关文章

相似问题

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