Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从SHA-1改为SHA-512_Java_Security_Sha - Fatal编程技术网

Java 从SHA-1改为SHA-512

Java 从SHA-1改为SHA-512,java,security,sha,Java,Security,Sha,我正在尝试从SHA-1改为SHA-512,以获得更好的安全性,但我不完全清楚如何进行更改 这是我使用SHA-1的方法: public static String sha1Convert(String password) { try { MessageDigest crypt = MessageDigest.getInstance("SHA-1"); crypt.reset();

我正在尝试从SHA-1改为SHA-512,以获得更好的安全性,但我不完全清楚如何进行更改

这是我使用SHA-1的方法:

public static String sha1Convert(String password) {
            try {
                MessageDigest crypt = MessageDigest.getInstance("SHA-1");
                crypt.reset();
                crypt.update(password.getBytes("UTF-8"));
                return byteToHex(crypt.digest());
            } catch (NoSuchAlgorithmException | UnsupportedEncodingException ex) {
                Logger.getLogger(UserLoginManaged.class.getName()).log(Level.SEVERE, null, ex);
                return null;
            }
        }
这是我一直在做的方法,但我不确定它是否完全有效,因为(如果我做错了,我很抱歉)。我正在将sha-1更改为sha-512,但当我尝试登录到我的应用程序时,它会告诉我密码错误。所以我不确定是我的方法错了,还是我只是对一些事情一无所知

public static String sha512Convert(String password) {
    try {
        MessageDigest sh = MessageDigest.getInstance("SHA-512");
        sh.reset();
        sh.update(password.getBytes());
        StringBuilder sb = new StringBuilder();
        for (byte b : sh.digest()) sb.append(Integer.toHexString(0xff & b));
        return sb.toString();
    } catch (NoSuchAlgorithmException e) {
        Logger.getLogger(UserLoginManaged.class.getName()).log(Level.SEVERE, null, e);
        throw new RuntimeException(e);
    }
}

从密码安全性的角度来看,SHA-1和SHA-512之间几乎没有什么区别,两者都可以在1U以下进行计算。从SHA-1升级是有原因的,但这不是原因之一

不要使用散列来保护密码,使用诸如PBKDF2(又名Rfc2898DeriveBytes)、密码\u散列/密码\u验证、Bcrypt和类似的函数

如今,密码被“破解”的方法是从1000万字的列表中尝试密码。在笔记本电脑上散列密码的时间小于1us,攻击者的速度将快几个数量级。除非是长矛钓鱼,否则攻击者会对最简单的90%感到满意

关键是让攻击者花费大量时间通过暴力手段查找密码


保护您的用户很重要,请使用安全的密码方法

从密码安全性的角度来看,SHA-1和SHA-512之间几乎没有什么区别,两者都可以在1U以下进行计算。从SHA-1升级是有原因的,但这不是原因之一

不要使用散列来保护密码,使用诸如PBKDF2(又名Rfc2898DeriveBytes)、密码\u散列/密码\u验证、Bcrypt和类似的函数

如今,密码被“破解”的方法是从1000万字的列表中尝试密码。在笔记本电脑上散列密码的时间小于1us,攻击者的速度将快几个数量级。除非是长矛钓鱼,否则攻击者会对最简单的90%感到满意

关键是让攻击者花费大量时间通过暴力手段查找密码


保护您的用户很重要,请使用安全的密码方法

拥有更好的安全性并不是我想换成SHA-512的唯一原因。但这只是其中之一。不过还是要感谢您的评论,更好的安全性并不是我想换成SHA-512的唯一原因。但这只是其中之一。还是谢谢你的评论