open-ssl仅加密超过15个字符的字符串

时间:2018-07-19 17:02:26

标签: php php-openssl

im在项目中使用open-ssl,并希望加密用户的名字和姓氏。我从open-ssl发现了一个奇怪的行为:只有具有超过15个字符的字符串才被加密。是我的错还是没有记录?

<?php

$cipher = 'aes-256-xts';
$privateKey = 'LOOK';
$stringToEncrypt = "Luisa 111 111 11";

$ivLength = openssl_cipher_iv_length($cipher);
$iv = openssl_random_pseudo_bytes($ivLength);

$encryptedData = openssl_encrypt($stringToEncrypt, $cipher, $privateKey, 0, $iv) . ":" . base64_encode($iv);

list($encryptedString, $iv) = explode(':', $encryptedData, 2);

$decryptedData = openssl_decrypt($encryptedString, $cipher, $privateKey, 0, base64_decode($iv));

有人知道我的问题的解决方案吗?

提前谢谢!

1 个答案:

答案 0 :(得分:0)

解决方案:将密码更改为aes-256-cbc允许仅使用一个字符对字符串进行加密。