Seit Java Version 1.4 gibt es den SHA-512 Hash-Algorithmus im java.security-Package. Damit ist es möglich, sehr sichere Verschlüsselungen mit 512-Bit zu erzeugen. Wie man einen SHA-512 Hashwert bildet, zeigt der folgende Code:
Beispiel:
CreatePassword.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | import java.io.UnsupportedEncodingException; import java.security.NoSuchAlgorithmException; public class CreatePassword { public static void main(String argv[]) { try { String strTest = EncryptPassword.SHA512("Das hier ist eine SHA-Verschlüsselung mit 512 Bit."); System.out.println(strTest); // 128 Zeichen String strTest2 = EncryptPassword.SHA512("...und das hier auch!"); System.out.println(strTest2); // 128 Zeichen } catch (NoSuchAlgorithmException ex) { System.out.println(ex.getMessage()); } catch (UnsupportedEncodingException ex) { System.out.println(ex.getMessage()); } } } |
EncryptPassword.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class EncryptPassword { private static String convertToHex(byte[] data) { StringBuffer buf = new StringBuffer(); for (int i = 0; i < data.length; i++) { int halfbyte = (data[i] >>> 4) & 0x0F; int two_halfs = 0; do { if ((0 <= halfbyte) && (halfbyte <= 9)) buf.append((char) ('0' + halfbyte)); else buf.append((char) ('a' + (halfbyte - 10))); halfbyte = data[i] & 0x0F; } while(two_halfs++ < 1); } return buf.toString(); } public static String SHA512(String text) throws NoSuchAlgorithmException, UnsupportedEncodingException { MessageDigest md; md = MessageDigest.getInstance("SHA-512"); byte[] sha1hash = new byte[40]; md.update(text.getBytes("UTF-8"), 0, text.length()); sha1hash = md.digest(); return convertToHex(sha1hash); } } |