小编Gan*_*gan的帖子

为什么SHA-1算法为相同的输入值产生不同的值?

在这里,我附上我的代码,基于"SHA-1"算法的Java代码,手动给出相同的输入值:

import java.security.MessageDigest;    
import java.security.NoSuchAlgorithmException;    
import sun.misc.BASE64Encoder;

public class NewClass {       
 public static void main(String args[]) throws NoSuchAlgorithmException        
 {       
    MessageDigest digest = MessageDigest.getInstance("SHA-1");    
    System.out.println("Algorithm :"+digest.getAlgorithm());    
    digest.update("welcome".getBytes());    
    byte[] result = digest.digest();     
    hash = (new BASE64Encoder()).encode(result);     
    MessageDigest digest1 = MessageDigest.getInstance("SHA-1");    
    digest1.update("welcome".getBytes());    
    byte[] result1 = digest1.digest();    
    System.out.println(result);    
    System.out.println(result1);    
    String hash1 = (new BASE64Encoder()).encode(result);    
    System.out.println("Digest value"+hash);    
    System.out.println("Digest value"+hash1);       
 }

}
Run Code Online (Sandbox Code Playgroud)

输出:

Algorithm :SHA-1

[B@42e816

[B@9304b1

Digest value wLE3/i15JFnyb/djzORFdKW1qwM=

Digest value wLE3/i15JFnyb/djzORFdKW1qwM=
Run Code Online (Sandbox Code Playgroud)

上述算法产生相同的哈希码,但中间值不相同.这是为什么?

java sha1 sha

1
推荐指数
2
解决办法
765
查看次数

标签 统计

java ×1

sha ×1

sha1 ×1