


Implementierung der AES-Verschlüsselung und -Entschlüsselung für PHP, Java, Net und Javascript
Aug 08, 2016 am 09:23 AM# PHP-Artikel
<?php $privateKey = "1234567812345678"; $iv = "1234567812345678"; $data = "Test String"; //加密 $encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $privateKey, $data, MCRYPT_MODE_CBC, $iv); echo '<br/>'; echo(base64_encode($encrypted)); echo '<br/>'; //解密 $encryptedData = base64_decode("2fbwW9+8vPId2/foafZq6Q=="); $decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $privateKey, $encryptedData, MCRYPT_MODE_CBC, $iv); echo($decrypted); ?>
#Javascript-Artikel
<script type="text/javascript" src="aes.js"></script> <script type="text/javascript" src="pad-zeropadding.js"></script> <script type="text/javascript"> ??????? var data = "Test String"; ??????? var key? = CryptoJS.enc.Latin1.parse('1234567812345678'); ??????? var iv?? = CryptoJS.enc.Latin1.parse('1234567812345678'); ??????? //加密 ??????? var encrypted = CryptoJS.AES.encrypt(data,key,{iv:iv,mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.ZeroPadding}); ??????? document.write(encrypted.ciphertext); ??????? document.write('<br/>'); ??????? document.write(encrypted.key); ??????? document.write('<br/>'); ??????? document.write(encrypted.iv); ??????? document.write('<br/>'); ??????? document.write(encrypted.salt); ??????? document.write('<br/>'); ??????? document.write(encrypted); ??????? document.write('<br/>'); ??????? //解密 ??????? var decrypted = CryptoJS.AES.decrypt(encrypted,key,{iv:iv,padding:CryptoJS.pad.ZeroPadding}); ??????? console.log(decrypted.toString(CryptoJS.enc.Utf8)); ??? </script>
# Java-Artikel
import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import org.junit.Test; @Test public void testCrossLanguageEncrypt() throws Exception{ System.out.println(encrypt()); System.out.println(desEncrypt()); } public static String encrypt() throws Exception { try { String data = "Test String"; String key = "1234567812345678"; String iv = "1234567812345678"; Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding"); int blockSize = cipher.getBlockSize(); byte[] dataBytes = data.getBytes(); int plaintextLength = dataBytes.length; if (plaintextLength % blockSize != 0) { plaintextLength = plaintextLength + (blockSize - (plaintextLength % blockSize)); } byte[] plaintext = new byte[plaintextLength]; System.arraycopy(dataBytes, 0, plaintext, 0, dataBytes.length); SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES"); IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes()); cipher.init(Cipher.ENCRYPT_MODE, keyspec, ivspec); byte[] encrypted = cipher.doFinal(plaintext); return new sun.misc.BASE64Encoder().encode(encrypted); } catch (Exception e) { e.printStackTrace(); return null; } } public static String desEncrypt() throws Exception { try { String data = "2fbwW9+8vPId2/foafZq6Q=="; String key = "1234567812345678"; String iv = "1234567812345678"; byte[] encrypted1 = new sun.misc.BASE64Decoder().decodeBuffer(data); Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding"); SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES"); IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes()); cipher.init(Cipher.DECRYPT_MODE, keyspec, ivspec); byte[] original = cipher.doFinal(encrypted1); String originalString = new String(original); return originalString; } catch (Exception e) { e.printStackTrace(); return null; } }
# .Net-Artikel
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Security.Cryptography; namespace test { class Class1 { static void Main(string[] args) { Console.WriteLine("I am comming"); String source = "Test String"; String encryptData = Class1.Encrypt(source, "1234567812345678", "1234567812345678"); Console.WriteLine("=1=="); Console.WriteLine(encryptData); Console.WriteLine("=2=="); String decryptData = Class1.Decrypt("2fbwW9+8vPId2/foafZq6Q==", "1234567812345678", "1234567812345678"); Console.WriteLine(decryptData); Console.WriteLine("=3=="); Console.WriteLine("I will go out"); } public static string Encrypt(string toEncrypt, string key, string iv) { byte[] keyArray = UTF8Encoding.UTF8.GetBytes(key); byte[] ivArray = UTF8Encoding.UTF8.GetBytes(iv); byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt); RijndaelManaged rDel = new RijndaelManaged(); rDel.Key = keyArray; rDel.IV = ivArray; rDel.Mode = CipherMode.CBC; rDel.Padding = PaddingMode.Zeros; ICryptoTransform cTransform = rDel.CreateEncryptor(); byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length); return Convert.ToBase64String(resultArray, 0, resultArray.Length); } public static string Decrypt(string toDecrypt, string key, string iv) { byte[] keyArray = UTF8Encoding.UTF8.GetBytes(key); byte[] ivArray = UTF8Encoding.UTF8.GetBytes(iv); byte[] toEncryptArray = Convert.FromBase64String(toDecrypt); RijndaelManaged rDel = new RijndaelManaged(); rDel.Key = keyArray; rDel.IV = ivArray; rDel.Mode = CipherMode.CBC; rDel.Padding = PaddingMode.Zeros; ICryptoTransform cTransform = rDel.CreateDecryptor(); byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length); return UTF8Encoding.UTF8.GetString(resultArray); } } }
Die Anforderungen für die sprachübergreifende Verschlüsselung und Entschlüsselung sind: AES/CBC/ZeroPadding 128-Bit-Modus, der Schlüssel und iv sind gleich und die Kodierung ist einheitlich utf-8. Wenn ZeroPadding nicht unterstützt wird, verwenden Sie NoPadding.
Das Obige stellt die AES-Verschlüsselungs- und Entschlüsselungsimplementierung von PHP, Java, Net und Javascript vor, einschlie?lich der relevanten Inhalte. Ich hoffe, dass es für Freunde hilfreich ist, die an PHP-Tutorials interessiert sind.

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Konvertieren Sie grundlegende Datentypen mit der Java-Funktion String.valueOf() in Strings. Wenn wir in der Java-Entwicklung grundlegende Datentypen in Strings konvertieren müssen, ist eine g?ngige Methode die Verwendung der Funktion valueOf() der String-Klasse. Diese Funktion kann Parameter grundlegender Datentypen akzeptieren und die entsprechende Zeichenfolgendarstellung zurückgeben. In diesem Artikel untersuchen wir, wie die Funktion String.valueOf() für grundlegende Datentypkonvertierungen verwendet wird, und stellen einige Codebeispiele dafür bereit

Methode zum Konvertieren eines char-Arrays in einen String: Dies kann durch Zuweisung erreicht werden. Verwenden Sie die Syntax {char a[]=" abc d\0efg ";string s=a;}, damit das char-Array dem String direkt einen Wert zuweisen und ausführen kann Der Code zum Abschlie?en der Konvertierung.

Ersetzen Sie Zeichen (Strings) in einem String mit der Java-Funktion String.replace(). In Java sind Strings unver?nderliche Objekte, was bedeutet, dass der Wert eines String-Objekts nach der Erstellung nicht mehr ge?ndert werden kann. Es kann jedoch vorkommen, dass Sie bestimmte Zeichen oder Zeichenfolgen in einer Zeichenfolge ersetzen müssen. Zu diesem Zeitpunkt k?nnen wir die Methode replace () in der String-Klasse von Java verwenden, um das Ersetzen von Zeichenfolgen zu implementieren. Die Methode replace() der Klasse String hat zwei Typen:

Verwenden Sie die String.length()-Funktion von Java, um die L?nge einer Zeichenfolge zu ermitteln. In der Java-Programmierung ist die Zeichenfolge ein sehr h?ufiger Datentyp. Wir müssen h?ufig die L?nge einer Zeichenfolge ermitteln, dh die Anzahl der Zeichen in der Zeichenfolge. In Java k?nnen wir die Funktion length() der String-Klasse verwenden, um die L?nge eines Strings zu ermitteln. Hier ist ein einfacher Beispielcode: publicclassStringLengthExample{publ

Verwenden Sie die String.startsWith()-Funktion von Java, um zu bestimmen, ob eine Zeichenfolge mit einem bestimmten Pr?fix beginnt. In der Java-Programmierung müssen wir h?ufig Zeichenfolgen verarbeiten und bestimmen. Eine h?ufige Operation besteht darin, zu bestimmen, ob eine Zeichenfolge mit einem angegebenen Pr?fix beginnt. Java stellt die Funktion ?startsWith()“ der String-Klasse bereit, mit der diese Funktion problemlos implementiert werden kann. Die Funktion ?startsWith()“ von String Die String-Klasse ist die am h?ufigsten verwendete Klasse in Java

Hallo zusammen, heute werde ich die Grundkenntnisse von Java: String mit Ihnen teilen. Unn?tig zu erw?hnen, wie wichtig die String-Klasse ist. Man kann sagen, dass sie die am h?ufigsten verwendete Klasse in unserer Back-End-Entwicklung ist, daher ist es notwendig, darüber zu sprechen.

1. String1 verstehen. Schauen wir uns zun?chst den Quellcode der String-Klasse im JDK an. Sie k?nnen sehen, dass die String-Klasse nicht ge?ndert werden kann Es gibt keine Unterklasse der String-Klasse, sodass alle Personen, die das JDK verwenden, dieselbe String-Klasse verwenden k?nnen Die Verwendung derselben Methode durch zwei verschiedene Personen führt zu unterschiedlichen Ergebnissen, was die Entwicklung des Codes unm?glich macht. Vererbung und Methodenüberschreibung bringen nicht nur Flexibilit?t, sondern führen auch dazu, dass sich viele Unterklassen unterschiedlich verhalten.

Die Funktion String.toLowerCase() ist eine sehr nützliche und g?ngige String-Verarbeitungsfunktion in Java, die einen String in Kleinbuchstaben umwandeln kann. In diesem Artikel stellen wir die Verwendung dieser Funktion vor und geben einige zugeh?rige Codebeispiele. Schauen wir uns zun?chst die grundlegende Syntax der Funktion String.toLowerCase() an. Es hat keine Parameter, rufen Sie es einfach auf. Hier ist der Beispielcode: Stringstr="Hel
