La demande de l'autre partie est de
encoder les données commerciales de l'interface et de soumettre la chaîne résultante, ainsi que de fournir la clé (clé) et le vecteur d'initialisation (offset) correspondant à la méthode de cryptage.AES-128-CBC-PKCS5Padding
加密,然后再做 Base64
Après avoir vu cette méthode de cryptage pour la première fois, j'ai cherché dans la bibliothèque de fonctions PHP pour voir s'il existait une fonction de cryptage correspondante. Cependant, après avoir cherché, j'ai découvert qu'il n'y en avait pas et j'ai dû l'implémenter moi-même. que je pourrais utiliser la fonction mcrypt. Implémentation de l'extension, mais la fonction mcrypt a été abandonnée depuis PHP 7.1.0. Il est fortement recommandé de ne pas utiliser cette fonction. Je dois rechercher d'autres bibliothèques de fonctions de chiffrement sur. au bas du manuel. J'ai découvert que cela peut être fait en comprenant la fonction openssl_encrypt (données cryptées). Pour mettre en œuvre les exigences, veuillez lire le manuel pour l'utilisation spécifique de openssl_encrypt [Recommandé :
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"}]
> **解决的方案,是把加密方式 AES-128-CBC 替换成 AES-256-CBC**
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!