国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Heim Backend-Entwicklung PHP-Tutorial Implementierung der AES-Verschlüsselung und -Entschlüsselung für PHP, Java, Net und Javascript

Implementierung der AES-Verschlüsselung und -Entschlüsselung für PHP, Java, Net und Javascript

Aug 08, 2016 am 09:23 AM
quot string

# PHP-Artikel

<?php
    $privateKey = "1234567812345678";
    $iv     = "1234567812345678";
    $data   = "Test String";

    //加密
    $encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $privateKey, $data, MCRYPT_MODE_CBC, $iv);
    echo &#39;<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.

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

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

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.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

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)

Hei?e Themen

PHP-Tutorial
1502
276
Konvertieren Sie grundlegende Datentypen mit der Java-Funktion String.valueOf() in Strings Konvertieren Sie grundlegende Datentypen mit der Java-Funktion String.valueOf() in Strings Jul 24, 2023 pm 07:55 PM

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

So konvertieren Sie ein Char-Array in einen String So konvertieren Sie ein Char-Array in einen String Jun 09, 2023 am 10:04 AM

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.

Verwenden Sie die String.replace()-Funktion von Java, um Zeichen (Strings) in einem String zu ersetzen Verwenden Sie die String.replace()-Funktion von Java, um Zeichen (Strings) in einem String zu ersetzen Jul 25, 2023 pm 05:16 PM

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 Verwenden Sie die String.length()-Funktion von Java, um die L?nge einer Zeichenfolge zu ermitteln Jul 25, 2023 am 09:09 AM

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 angegebenen Pr?fix beginnt Verwenden Sie die String.startsWith()-Funktion von Java, um zu bestimmen, ob eine Zeichenfolge mit einem angegebenen Pr?fix beginnt Jul 25, 2023 pm 02:27 PM

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

2w W?rter detaillierte Erkl?rung String, yyds 2w W?rter detaillierte Erkl?rung String, yyds Aug 24, 2023 pm 03:56 PM

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.

So verwenden Sie die String-Klasse von Java So verwenden Sie die String-Klasse von Java Apr 19, 2023 pm 01:19 PM

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.

Konvertieren Sie eine Zeichenfolge mit der Java-Funktion String.toLowerCase() in Kleinbuchstaben Konvertieren Sie eine Zeichenfolge mit der Java-Funktion String.toLowerCase() in Kleinbuchstaben Jul 24, 2023 pm 11:52 PM

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

See all articles