Sha1
Paket com.stone.security; importieren java.io.BytearrayInputStream; Import Java.io.file; import Java.io.FileInputStream; importieren java.io.fileoutputStream; Java.Security.DigEnputStream importieren; Java.security.DigestoutputStream importieren; Java.Security.Messagedigest importieren; Import Java.util.Arrays; import Javax.crypto.mac; importieren javax.crypto.secretkey; importieren javax.crypto.secretkeyFactory; importieren javax.crypto.spec.pbekeyspec; public class sha {public static void main (String [] args) löst eine Ausnahme aus {EncodeByMac ("China op ... &*() ... & 802134 ..."); EncodeBySha ("China op ... &*() ... & 802134 ..."); Shafile (); } / ** * Meldungsübersicht mit dem Mac -Algorithmus * @param data * @throws Exception * / public static void codebymac (String Data) löst eine Ausnahme aus {// KeyGenerator Keygen = keygenerator.getInstance ("hmacsha1"); // secryKey key = keygen.generateKey (); // Dieser Schlüssel, der jedes Mal generiert wird, ist unterschiedlich, pbekeyspec keyspec = new pbekeyspec ("randomkey^(^&*^%$". TocharArray (); SecretKeyFactory KeyFactory = SecretKeyFactory.getInstance ("pBewithmd5anddes"). Der "Nachrichtenauthentifizierungscode" (MAC) -Algorithmus. Kryptografische Hash-Funktion (wie MD5 oder SHA-1) */ Mac = Mac.getInstance ("hmacsha1"); Mac.getInstance ("hmacsha512"); Mac.init (Schlüssel); byte [] dest = mac.dofinal (data.getBytes ()); System.out.println (dest.length); System.out.println ("Mac -Zusammenfassung:" + arrays.toString (dest)); } / *** SHA1 -Verschlüsselung verwendet Message Digest MindagedIGest, um* @throws Exception* / public static String EncodebySha (String Str) Ausnahme auszusetzen {MessagedIGest SHA1; SHA1 = MessagedIGest.getInstance ("SHA1"); // Die folgenden drei sind nicht verfügbar // Sha1 = MessagedIGest.getInstance ("SHA256"); // SHA1 = MessagedIGest.getInstance ("SHA384"); // SHA1 = MessagedIGest.getInstance ("SHA512"); sha1.update (str.getBytes ()); // Die Zusammenfassung First Byte [] digest = SHA1.Digest () aktualisieren; // Die Hash -Berechnung wird durch Durchführung von endgültigen Operationen wie Polsterung abgeschlossen. Nachdem diese Methode aufgerufen wurde, wird die Zusammenfassung zurückgesetzt. / * * Verwenden Sie das angegebene Byte -Array, um die endgültige Aktualisierung der Zusammenfassung durchzuführen und die Zusammenfassung zu vervollständigen. * Das heißt, diese Methode ruft zuerst Aktualisierung (Eingabe) auf, * übergibt das Eingabearray an die Aktualisierungsmethode und dann Digest (). */ // byte [] digest = sha1.Digest (str.getBytes ()); String hex = tohex (Digest); System.out.println ("SHA1 -Zusammenfassung:" + hex); hex zurückkehren; } / *** Dateidatenzusammenfassung* @throws Exception* / public static void Shafile () löst Ausnahme aus {MessagedIGest MessagedIGest = MessagedIGest.getInstance ("SHA1"); DigESTOutputStream dos = new DigestOutputStream (neuer FileOutputStream (neue Datei ("abc.txt"), MessagedIGest); dos.write ("chinesisches Volk ... & ()) f*(214) admin*". getBytes ()); dos.close (); byte [] digest = middagedIGest.Digest (); System.out.println ("Schreiben Sie eine Datei mit Stream, die Zusammenfassung der Datei lautet:" + tohex (digest)); DigESTInputStream dis = new DigESTInputStream (neuer FileInputStream (neue Datei ("abc.txt"), MessagedIGest); byte [] buf = neues byte [100]; Int len; while ((len = dis.read (buf))! } dis.close (); byte [] digest2 = MessagedIGest.Digest (); // Wenn der Stream gelesen wird, ist die Datei abgeschlossen und die Digest ist die gleiche wie bei schriftlichem System.out.println ("Stream zum Lesen der Datei verwenden, die Digest der Datei lautet:" + tohex (digest2)); } / ** * SHA1 DIGEST ist zu hexadezimal * @param digest * @return * / private statische String tohex (byte [] digest) {StringBuilder sb = new StringBuilder (); int len = digest.length; String out = null; für (int i = 0; i <len; i ++) {// out = integer.tohexstring (0xff & digest [i]+0xabcdef); // Fügen Sie ein Salt out = integer.tohexString (0xff & digest [i]); // Originalmethode if (out.length () == 1) {sb.append ("0"); // Wenn Sie 0 vor 1 Bit} sb.append (out) hinzufügen; } return sb.toString (); }}
MD5
MD5 (Message Digest -Algorithmus 5), Die fünfte Ausgabe des Message Digest -Algorithmus. Message Digest ist ein Algorithmus: Unabhängig davon, wie lange die Originaldaten sind, ist das Ergebnis des Nachrichten Digest eine feste Länge. Es ist ein irreversibler Algorithmus. Änderungen in jedem Bit der ursprünglichen Daten verursachen große Unterschiede in den Ergebnissen des Nachrichtenverdauers, und die Wahrscheinlichkeit der Berechnung der ursprünglichen Daten basierend auf den Ergebnissen ist äußerst niedrig.
Der Message Digest kann als Fingerabdruck der Originaldaten angesehen werden. Unterschiedliche Fingerabdrücke machen die Originaldaten unterschiedlich.
Paket com.stone.security; importieren java.io.BytearrayInputStream; Import Java.io.file; import Java.io.FileInputStream; importieren java.io.fileoutputStream; Java.Security.DigEnputStream importieren; Java.security.DigestoutputStream importieren; Java.Security.Messagedigest importieren; Import Java.util.Arrays; import Javax.crypto.mac; importieren javax.crypto.secretkey; importieren javax.crypto.secretkeyFactory; importieren javax.crypto.spec.pbekeyspec; public class md5 {public static void main (String [] args) löst eine Ausnahme aus {EncodeByMac ("China op ... &*() ... & 802134 ..."); EncodeBYMD5 ("China op ... &*() ... & 802134 ..."); Md5File (); } / ** * Meldungsübersicht mit dem Mac -Algorithmus * @param data * @throws Exception * / public static void bodeByMac (String Data) löst eine Ausnahme aus {// KeyGenerator KeyGen = keygenerator.getInstance ("hmacmd5"); // secryKey key = keygen.generateKey (); // Dieser Schlüssel, der jedes Mal generiert wird, ist unterschiedlich, pbekeyspec keyspec = new pbekeyspec ("randomkey^(^&*^%$". TocharArray (); SecretKeyFactory KeyFactory = SecretKeyFactory.getInstance ("pBewithmd5anddes"). Der "Nachrichtenauthentifizierungscode" (MAC) -Algorithmus. kryptografische Hash-Funktion (wie MD5 oder SHA-1) */ Mac = Mac.getInstance ("HmaCmd5"); } / *** MD5 -Verschlüsselung verwendet Message Digest MindagedIGest, um* @throws Exception* / public static String EncodeBYMD5 (String Str) Ausnahme {MessagedIGest MD5; MD5 = MessagedIGest.getInstance ("Md5"); md5.update (str.getBytes ()); // Die Zusammenfassung First Byte [] digest = md5.Digest () aktualisieren; // Die Hash -Berechnung wird durch Durchführung von endgültigen Operationen wie Polsterung abgeschlossen. Nachdem diese Methode aufgerufen wurde, wird die Zusammenfassung zurückgesetzt. / * * Verwenden Sie das angegebene Byte -Array, um die endgültige Aktualisierung der Zusammenfassung durchzuführen und die Zusammenfassung zu vervollständigen. * Das heißt, diese Methode ruft zuerst Aktualisierung (Eingabe) auf, * übergibt das Eingabearray an die Aktualisierungsmethode und dann Digest (). */ // byte [] digest = md5.Digest (str.getBytes ()); String hex = tohex (Digest); System.out.println ("MD5 -Zusammenfassung:" + hex); hex zurückkehren; } / *** Dateidatenzusammenfassung* @throws Exception* / public static void md5File () löst eine Ausnahme aus {MessagedIGest MessagedIGest = MessagedIGest.getInstance ("Md5"); DigESTOutputStream dos = new DigestOutputStream (neuer FileOutputStream (neue Datei ("abc.txt"), MessagedIGest); dos.write ("chinesisches Volk ... & ()) f*(214) admin*". getBytes ()); dos.close (); byte [] digest = middagedIGest.Digest (); System.out.println ("Schreiben Sie eine Datei mit Stream, die Zusammenfassung der Datei lautet:" + tohex (digest)); DigESTInputStream dis = new DigESTInputStream (neuer FileInputStream (neue Datei ("abc.txt"), MessagedIGest); byte [] buf = neues byte [100]; Int len; while ((len = dis.read (buf))! } dis.close (); byte [] digest2 = MessagedIGest.Digest (); // Wenn der Stream gelesen wird, ist die Datei abgeschlossen und die Digest ist die gleiche wie bei schriftlichem System.out.println ("Stream zum Lesen der Datei verwenden, die Digest der Datei lautet:" + tohex (digest2)); } / ** * Md5 Digest soll hexadecimal * @param digest * @return * / private statische String tohex (byte [] digest) {StringBuilder sb = new StringBuilder (); int len = digest.length; String out = null; für (int i = 0; i <len; i ++) {// out = integer.tohexstring (0xff & digest [i]+0xabcdef); // Fügen Sie ein Salt out = integer.tohexString (0xff & digest [i]); // Originalmethode if (out.length () == 1) {sb.append ("0"); // Wenn Sie 0 vor 1 Bit} sb.append (out) hinzufügen; } return sb.toString (); }}PS: Hier sind zwei weitere MD5 -Verschlüsselungstools für Sie. Interessierte Freunde können sich darauf beziehen:
MD5 Online -Verschlüsselungstool:
http://tools.vevb.com/password/createmd5password
Online MD5/Hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160-Verschlüsselungsinstrument:
http://tools.vevb.com/password/hash_md5_sha