Quoi qu'il en soit, je commence à faire des programmes Java (une programmation newb) et j'ai décidé de faire une simple classe utilitaire qui convertit le texte en chaînes SHA-1. Je prévois d'utiliser ceci pour crypter les mots de passe pour les bases de données. N'hésitez pas à commenter et j'aimerais apprendre de vous les gars. Voici mon code:Que pensez-vous de ma classe Java simple qui crypte le texte en SHA-1?
/*
* Utility class that encrypts a string created for storing passwords
* into databases
*/
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
*
* @author mamamambo
*/
public final class Encryptor {
// Salt for extra security
private static String salt = "54L7";
private static String encrptionAlgorithm = "SHA-1";
private Encryptor() { }
public static String encrypt(String str) {
StringBuffer encryptedResult = new StringBuffer();
String strWithSalt = salt + str;
try {
MessageDigest md = MessageDigest.getInstance(encrptionAlgorithm);
md.update(strWithSalt.getBytes());
byte[] digest = md.digest();
for (byte b : digest) {
int number = b;
// Convert negative numbers
number = (number < 0) ? (number + 256) : number;
encryptedResult.append(Integer.toHexString(number));
}
} catch (NoSuchAlgorithmException ex) {
System.out.println(ex.toString());
}
return encryptedResult.toString();
}
}
Les octets de Java sont signés de sorte qu'ils peuvent aller de -128 à +127. – James
@James: oh, d'accord. étrange. =) –