Я использую хеширование Sha-256 в моей Java программе, которая работает согласно поведению.
Я немного запутался в функции, которую использовал для SHA-256.
Ниже приведен код функции:
// Function for generating to Hash of the file content..
public static String generateHash( String fileContent )
{
String hashtext = EMPTY_STRING;
try {
// SHA - 256 Message Digest..
MessageDigest shaDigest = MessageDigest.getInstance( "SHA-256" );
// digest() method is called
// to calculate message digest of the input string
// returned as array of byte
byte[] messageDigest = shaDigest.digest( fileContent.getBytes() );
// Convert byte array into signum representation
BigInteger no = new BigInteger( 1, messageDigest );
// Convert message digest into hex value
hashtext = no.toString( 16 );
// Add preceding 0s to make it 32 bit
while ( hashtext.length() < 32 ) {
hashtext = "0" + hashtext;
}
}
catch ( Exception hashingException ) {
System.out.println( "Exception in Hashing of Content = " + hashingException );
}
// return the HashText
return hashtext;
}
Теперь я запутался в трех утверждениях; поскольку я не знаю, какова их настоящая цель, так как я просмотрел их на inte rnet, но не получил никаких поясняющих вещей. Может ли кто-нибудь прояснить мне эти три шага?
ЗАЯВЛЕНИЕ 1
BigInteger no = new BigInteger( 1, messageDigest );
ЗАЯВЛЕНИЕ 2
hashtext = no.toString( 16 );
ЗАЯВЛЕНИЕ 3
while ( hashtext.length() < 32 ) {
hashtext = "0" + hashtext;
}