Heim Java javaLernprogramm Wie implementiert man die AES-Verschlüsselung?

Wie implementiert man die AES-Verschlüsselung?

Jun 20, 2017 pm 02:48 PM
加密

package util;

import java.io.UnsupportedEncodingException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import org.apache.tomcat.util.codec.binary.Base64;

/**
*
* @author Administrator
*
*/
public class AES {

// 加密
   public static String Encrypt(String sSrc, String sKey) throws Exception {
       if (sKey == null) {
System.out.print("Key为空null");
           return null;
       }
       // 判断Key是否为16位
       if (sKey.length() != 16) {
           System.out.print("Key长度不是16位");
           return null;
       }
       byte[] raw = sKey.getBytes("utf-8");
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
       Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");//"算法/模式/补码方式"
       cipher.init( Cipher.ENCRYPT_MODE, skeySpec);
       byte[] verschlüsselt = cipher.doFinal(sSrc.getBytes("utf-8"));

return new Base64().encodeToString(encrypted);//此处使用BASE64做转码功能,同时能起到2次加密的作用.
   }

// Entschlüsseln > Public Static String Decrypt (String SSRC, String Skey) Throws Exception {
Try {
// Beurteilen, ob der Schlüssel korrekt ist
if (SKEY == NULL) { System.out.print("Key is null");
return null;
}
// Bestimmen Sie, ob der Schlüssel 16 Bit lang ist
if (sKey.length () != 16) {
          System.out.print("Key length is not 16 bits");
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
Cipher cipher = Cipher. getInstance("AES/ECB/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, skeySpec );
byte[] verschlüsselt1 = new Base64().decode(sSrc);//Zuerst mit Base64 entschlüsseln
                                                                                                                               using  base64         using           using ' s ' ' using ' s ' t ‐ ‐ ‐ d byte[] original = cipher.doFinal(encrypted1);  
                String( original,"utf-8");
return originalString;
} Catch (Exception e) {
System.out.println(e.toString());
Return Null;
}
      } Catch (Exception Ex ) {
          System.out.println(ex.toString());
              return null; 🎝> */
public static byte[] encrypt(String content, String password) {
                                                     kgen. init(128, new SecureRandom (password.getBytes())); ​​SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES") ;
Cipher cipher = Cipher.getInstance("AES");
byte[] byteContent = content.getBytes("utf-8");
cipher.init(Cipher.ENCRYPT_MODE , key); // Initialisierung
              byte[] result = cipher.doFinal(byteContent) ; {
e.printStackTrace();
                        e.printStackTrace();
} Catch (UnsupportedEncodingException e) {
                      e.printStackTrace( );                                                                                                                                                                           e.printStackTrace();                   e.printStackTrace();  
           } Catch (BadPaddingException e) {  
                   e.printStackTrace();  
           }  
           return null;  
   }  
   /**Entschlüsselung
* @param content Zu entschlüsselnder Inhalt
* @param Passwort Entschlüsselungsschlüssel
* @return
*/  
   public static byte[] decrypt(byte[] content, String passwort) {  
           try {  
                  KeyGenerator kgen = erator.getInstance(" AES");  
                    kgen.init(128, new SecureRandom(password.getBytes()));  
                    SecretKey secretKey = kgen.generateKey();  
                    byte[] enCodeFormat = SecretKey.getEncoded();  
                    SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");              
                    Cipher cipher = Cipher.getInstance("AES");// 创建密码器  
                 cipher.init(Cipher.DECRYPT_MODE, key);// 
                   byte[] result = cipher.doFinal(content );  
                   Rückgabeergebnis; // 加密  
           } Catch (NoSuchAlgorithmException e) {  
                   e.printStackTrace();  
           } Catch (NoSuchPaddingException e) {  
                   e.printStackTrace();  
           } Catch (InvalidKeyException e) {  
                   e.printStackTrace();  
           } Catch (IllegalBlockSizeException e) {  
                   e.printStackTrace();  
           } Catch (BadPaddingException e) {  
                   e.printStackTrace();  
           }  
           return null;  
   }  
   /**Konvertieren Sie binär in hexadezimal
* @param buf
* @return
*/  
   public static String parseByte2HexStr(byte buf[]) {  
           StringBuffer sb = new StringBuffer();  
           for (int i = 0; i < buf.length; i++) {  
                   String hex = Integer.toHexString(buf[i] & 0xFF);  
                   if (hex.length() == 1) {  
                           hex = '0' + hex;  
                   }  
                   sb.append(hex.toUpperCase());  
           }  
           return sb.toString();  
   }  
   /**Hexadezimal in Binär umwandeln
* @param hexStr
* @return
*/  
   public static byte[] parseHexStr2Byte(String hexStr) {  
           if (hexStr.length() < 1)  
                  null zurückgeben;  
           byte[] result = new byte[hexStr.length()/2];  
           for (int i = 0;i< hexStr.length()/2; i++) {  
int high = Integer.parseInt(hexStr.substring(i*2, i*2+1), 16); 🎜> public static void main(String [] args) löst eine Ausnahme aus {
/*
* Hier wird der Verschlüsselungsmodus AES-128-ECB verwendet und der Schlüssel muss 16 Bit lang sein.
*/
String cKey = "1234567890123456";
// String, der verschlüsselt werden muss
String cSrc = "www.gowhere.so";
println(cSrc ) ;
                                                                                                                 String enString = AES.Encrypt(cSrc, cKey); // Decrypt
String DeString = AES.Decrypt(enString, cKey);
System.out.println("Der entschlüsselte String ist: " + DeString);
String content = "test";
String passwort = "12345678";
//Verschlüsselung
System.out.println("Vor der Verschlüsselung: " + content);
byte[] encryptResult = encrypt(content, password);
String encryptResultStr = parseByte2HexStr(encryptResult);
System.out.println("Nach der Verschlüsselung: " + encryptResultStr); 🎜> byte[] decryptFrom = par seHexStr2Byte(encryptResultStr);

byte[] decryptResult = decrypt(decryptFrom,password);

System.out.println("Nach der Entschlüsselung: " + new String(decryptResult));
}
}

Das obige ist der detaillierte Inhalt vonWie implementiert man die AES-Verschlüsselung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Aktivieren Sie die 256-Bit-Bitlocker-Verschlüsselung unter Windows 11 für mehr Sicherheit Aktivieren Sie die 256-Bit-Bitlocker-Verschlüsselung unter Windows 11 für mehr Sicherheit Nov 26, 2023 am 11:21 AM

Bitlocker ist die Standardverschlüsselungstechnologie für Windows-Betriebssysteme. Es wird häufig unter Windows verwendet, einige Benutzer bevorzugen jedoch Lösungen von Drittanbietern wie VeraCrypt. Was viele Benutzer von Bitlocker nicht wissen, ist, dass es standardmäßig eine 128-Bit-Verschlüsselung verwendet, obwohl 256-Bit verfügbar ist. Ohne zu sehr auf die Unterschiede einzugehen; der Hauptunterschied zwischen der AES-128-Bit- und der 256-Bit-Verschlüsselung ist die Länge des Sicherheitsschlüssels. Längere Tasten erschweren Brute-Force-Angriffe. Während der Standardwert 128-Bit ist, empfiehlt sogar Microsoft 256-Bit für mehr Sicherheit. Das Problem besteht darin, dass die meisten Benutzer wahrscheinlich nichts über die schwächeren Standardeinstellungen wissen oder wissen, wie sie diese ändern können. Zuerst möchten Sie vielleicht W. kennen lernen

Detailliertes Tutorial zu Win11-verschlüsseltem DNS Detailliertes Tutorial zu Win11-verschlüsseltem DNS Dec 25, 2023 am 10:13 AM

Microsoft hat zuvor DNS-Verschlüsselungsdienste für Win11 bereitgestellt, aber viele Benutzer wissen nicht, wie man mit Win11 verschlüsselte DNS verwendet. Tatsächlich müssen wir nur die DNS-Einstellungen unter den Netzwerkeinstellungen öffnen. Ausführliches Tutorial zu Win11-verschlüsselten DNS: 1. Geben Sie zuerst die Festplatte ein und suchen Sie den Ordner, den Sie verschlüsseln möchten. 2. Öffnen Sie dann „Ethernet“ auf der rechten Seite. 3. Suchen Sie dann unten die DNS-Serverzuordnung und klicken Sie auf „Bearbeiten“. 4. Nachdem Sie „Auto (DHCP)“ auf „Manuell“ geändert haben, öffnen Sie „IPv4“ unten. 5. Nach dem Einschalten , geben Sie „8.8.8.8“ in das bevorzugte DNS ein. 6. Ändern Sie dann die bevorzugte DNS-Verschlüsselung in „Nur Verschlüsselung (DNS über HTTPS)“. 7. Nachdem die Änderungen abgeschlossen sind, klicken Sie auf „Speichern“ und Sie finden

Unterstützt Win10 Home Edition die Ordnerverschlüsselung? Unterstützt Win10 Home Edition die Ordnerverschlüsselung? Jan 09, 2024 am 08:58 AM

Ziel der Dateiverschlüsselung ist es, Daten auf professionellem Niveau zu verschlüsseln, um die Datensicherheit effektiver zu gewährleisten! Nur durch die Beherrschung des richtigen Verschlüsselungsschlüssels kann der Entschlüsselungsvorgang durchgeführt werden, wodurch die Sicherheit der Informationsressourcen gewährleistet wird. Allerdings verfügt die Dateiverschlüsselungsfunktion von Win10 Home Edition noch nicht über diese Funktion. Kann Win10 Home Edition Ordner verschlüsseln? Antwort: Win10 Home Edition kann keine Ordner verschlüsseln. Tutorial zum Verschlüsseln von Dateien im Windows-System 1. Klicken Sie mit der rechten Maustaste auf die Datei oder den Ordner, die Sie verschlüsseln möchten (oder halten Sie die Taste eine Weile gedrückt) und wählen Sie dann die Funktion „Eigenschaften“. 2. Suchen Sie in der neuen erweiterten Benutzeroberfläche nach der Option „Erweitert“. Denken Sie nach dem Klicken zur Eingabe daran, die Option „Inhalt verschlüsseln, um Daten zu schützen“ unten zu aktivieren. 3. Nachdem die Einstellung abgeschlossen ist, klicken Sie auf „OK“.

So richten Sie die Verschlüsselung des Fotoalbums auf einem Apple-Mobiltelefon ein So richten Sie die Verschlüsselung des Fotoalbums auf einem Apple-Mobiltelefon ein Mar 02, 2024 pm 05:31 PM

In Apple-Handys können Benutzer Fotoalben nach ihren eigenen Bedürfnissen verschlüsseln. Einige Benutzer wissen nicht, wie sie es einrichten sollen. Sie können dem Memo die zu verschlüsselnden Bilder hinzufügen und das Memo dann sperren. Als nächstes stellt der Herausgeber die Methode zum Einrichten der Verschlüsselung mobiler Fotoalben für Benutzer vor. Schauen Sie sich das an. Apple-Handy-Tutorial So richten Sie die iPhone-Fotoalbum-Verschlüsselung ein A: Nachdem Sie dem Memo die Bilder hinzugefügt haben, die verschlüsselt werden müssen, gehen Sie zum Sperren des Memos, um eine detaillierte Einführung zu erhalten: 1. Öffnen Sie das Fotoalbum und wählen Sie das Bild aus, das verschlüsselt werden soll verschlüsselt, und klicken Sie dann unten auf [Hinzufügen zu]. 2. Wählen Sie [Zu Notizen hinzufügen]. 3. Geben Sie das Memo ein, suchen Sie das gerade erstellte Memo, geben Sie es ein und klicken Sie auf das Symbol [Senden] in der oberen rechten Ecke. 4. Klicken Sie unten auf [Gerät sperren].

So legen Sie ein Passwort für die Ordnerverschlüsselung ohne Komprimierung fest So legen Sie ein Passwort für die Ordnerverschlüsselung ohne Komprimierung fest Feb 20, 2024 pm 03:27 PM

Die Ordnerverschlüsselung ist eine gängige Datenschutzmethode, die den Inhalt eines Ordners verschlüsselt, sodass nur diejenigen auf die Dateien zugreifen können, die über das Entschlüsselungskennwort verfügen. Beim Verschlüsseln eines Ordners gibt es einige gängige Möglichkeiten, ein Passwort festzulegen, ohne die Datei zu komprimieren. Zunächst können wir die Verschlüsselungsfunktion des Betriebssystems nutzen, um ein Ordnerkennwort festzulegen. Für Windows-Benutzer können Sie es einrichten, indem Sie die folgenden Schritte ausführen: Wählen Sie den zu verschlüsselnden Ordner aus, klicken Sie mit der rechten Maustaste auf den Ordner und wählen Sie „Eigenschaften“.

Häufige Netzwerkkommunikations- und Sicherheitsprobleme und Lösungen in C# Häufige Netzwerkkommunikations- und Sicherheitsprobleme und Lösungen in C# Oct 09, 2023 pm 09:21 PM

Häufige Netzwerkkommunikations- und Sicherheitsprobleme und Lösungen in C# Im heutigen Internetzeitalter ist Netzwerkkommunikation zu einem unverzichtbaren Bestandteil der Softwareentwicklung geworden. In C# treten normalerweise einige Netzwerkkommunikationsprobleme auf, z. B. die Sicherheit der Datenübertragung, die Stabilität der Netzwerkverbindung usw. In diesem Artikel werden häufig auftretende Netzwerkkommunikations- und Sicherheitsprobleme in C# ausführlich erläutert und entsprechende Lösungen und Codebeispiele bereitgestellt. 1. Netzwerkkommunikationsprobleme Unterbrechung der Netzwerkverbindung: Während des Netzwerkkommunikationsprozesses kann die Netzwerkverbindung unterbrochen werden, was zu Problemen führen kann

Vollständige Liste der PHP-Verschlüsselungs- und Entschlüsselungsfunktionen: sichere Anwendungsmethoden von MD5, SHA1, Base64_encode und anderen Funktionen Vollständige Liste der PHP-Verschlüsselungs- und Entschlüsselungsfunktionen: sichere Anwendungsmethoden von MD5, SHA1, Base64_encode und anderen Funktionen Nov 18, 2023 pm 04:18 PM

Vollständige Liste der PHP-Verschlüsselungs- und Entschlüsselungsfunktionen: sichere Anwendungsmethoden von MD5, SHA1, Base64_encode und anderen Funktionen, die spezifische Codebeispiele erfordern. Bei der Entwicklung von Netzwerkanwendungen ist die Datenverschlüsselung und -entschlüsselung sehr wichtig. Als beliebte serverseitige Skriptsprache bietet PHP eine Vielzahl von Verschlüsselungs- und Entschlüsselungsfunktionen. In diesem Artikel werden häufig verwendete Funktionen und ihre sicheren Anwendungsmethoden vorgestellt und spezifische Codebeispiele bereitgestellt. MD5-Funktion Die MD5-Funktion ist die gebräuchlichste Verschlüsselungsfunktion, die eine Zeichenfolge beliebiger Länge in 32 Bit konvertieren kann

Vollständige Anleitung zur Win11-Dateiverschlüsselung Vollständige Anleitung zur Win11-Dateiverschlüsselung Jan 09, 2024 pm 02:50 PM

Einige Freunde möchten ihre Dateien schützen, wissen aber nicht, wie sie Win11-Dokumente verschlüsseln sollen. Tatsächlich können wir die Ordnerverschlüsselung direkt verwenden oder Software von Drittanbietern zum Verschlüsseln von Dateien verwenden. Ausführliches Tutorial zur Win11-Dokumentenverschlüsselung: 1. Suchen Sie zunächst die Datei, die Sie verschlüsseln möchten, klicken Sie mit der rechten Maustaste, um sie auszuwählen, und öffnen Sie „Eigenschaften“. 2. Klicken Sie dann in der Eigenschaftenspalte auf „Erweitert“. 3. Wählen Sie „Inhalt verschlüsseln, um Daten zu schützen“. " in „Erweitert“ und klicken Sie auf „OK“ 4. Klicken Sie dann zum Speichern auf „OK“. 5. Wählen Sie abschließend den gewünschten Verschlüsselungsmodus und klicken Sie auf „OK“, um das Dokument zu speichern und das Dokument zu verschlüsseln.

See all articles