Die Anfrage der anderen Partei besteht darin,
die Geschäftsdaten der Schnittstelle zu kodieren und die resultierende Zeichenfolge zu übermitteln sowie den Schlüssel (Schlüssel) und den Initialisierungsvektor (Offset) bereitzustellen, die der Verschlüsselungsmethode entsprechen.AES-128-CBC-PKCS5Padding
加密,然后再做 Base64
Nachdem ich diese Verschlüsselungsmethode zum ersten Mal gesehen hatte, suchte ich in der PHP-Funktionsbibliothek nach einer entsprechenden Verschlüsselungsfunktion. Nachdem ich mich umgesehen hatte, stellte ich fest, dass es keine gab und ich sie später selbst implementieren musste dass ich die mcrypt-Funktionserweiterung verwenden könnte, aber die mcrypt-Funktion wurde seit PHP 7.1.0 aufgegeben. Ich muss nach anderen Verschlüsselungsfunktionsbibliotheken suchen Ich habe herausgefunden, dass dies durch das Verständnis der Funktion „openssl_encrypt“ (verschlüsselte Daten) möglich ist. Bitte lesen Sie das Handbuch für die spezifische Verwendung von „openssl_encrypt“ [Empfehlung:
function encrypt($input, $key, $iv){
return base64_encode(openssl_encrypt($input, 'AES-128-CBC', $key, OPENSSL_RAW_DATA,$iv));
}
// 解密
function decrypt($input, $key, $iv){
return openssl_decrypt(base64_decode($input), 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv);
}
// 测试加密 (我这里用的是json字符串)
$dataJson = '[{"Code": "123123", "Name": "Bob", "Address": "\u94f6\u5ddd\u5e02"}, {"Code": "464776", "Name": "Hello", "Address": "\u5317\u4eac\u5e02"}]';
print_r(encrypt($dataJson, $key, $iv));
//u9Bd8oHXDGvjZcTIX9HK1r1q+aSu+/48gsfoGVrxoScZuX8yaj/xco8F2yHt2T987JNHil9LwjAmu9o5NJaicWQDaiKwMD5o70k1A9bGjDd71xb4hXRx3ddZwI85oTQQEUQLadR5C759SdaN8AOxlzH+yGlAWTOaEleulKoRTwaknG1NCM/qIRQ8gI5lzv+D
// 测试解密
$strr = 'u9Bd8oHXDGvjZcTIX9HK1r1q+aSu+/48gsfoGVrxoScZuX8yaj/xco8F2yHt2T987JNHil9LwjAmu9o5NJaicWQDaiKwMD5o70k1A9bGjDd71xb4hXRx3ddZwI85oTQQEUQLadR5C759SdaN8AOxlzH+yGlAWTOaEleulKoRTwaknG1NCM/qIRQ8gI5lzv+D';
print_r(decrypt($strr, $key, $iv));
// [{"Code": "123123", "Name": "Bob", "Address": "\u94f6\u5ddd\u5e02"}, {"Code": "464776", "Name": "Hello", "Address": "\u5317\u4eac\u5e02"}]
Das obige ist der detaillierte Inhalt vonEin Artikel, der ausführlich erklärt, wie man die AES-128-CBC-PKCS5Padding-Verschlüsselung in PHP implementiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!