首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >2路加密图像文件名

问2路加密图像文件名
EN

Stack Overflow用户
提问于 2017-02-04 00:21:46
回答 2查看 484关注 0票数 0

我想用加密字符串更改图像文件名。

我还需要:

  • 使用相同的密码多次加密原始字符串,将返回相同的字符串。
  • 加密的字符串应该被解密(双向加密)

我可以使用什么php方法?我看到mcrypt没有经过很多年的更新,每次加密时,openssl_crypt都会返回不同的加密字符串(即使密码是相同的)。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-04 13:42:49

openssl_encrypt & co应该会没事的。示例:

代码语言:javascript
复制
<?php
$data='foo.jpg';
$method='AES-192-CBC';
$password='ogiughjklpdeorivjrhfnd';
$iv=base64_encode(random_bytes(10));
$encrypted=array();
for($i=0;$i<10;++$i){
    $encrypted[]=openssl_encrypt($data,$method,$password,0,$iv );
}
$decrypted=openssl_decrypt ($encrypted[0] ,$method ,$password,0,$iv);

var_dump($data,$encrypted[0],$decrypted,$data===$decrypted,$encrypted[2]===$encrypted[7],$encrypted);

引用openssl_crypt will return different encrypted strings each time I encrypt (even if the password is the same). -不是与AES-192-CBC,只要密码和IV是相同的.我认为这就是为什么第一次发明IV是为了防止相同的数据被加密到完全相同的加密形式

票数 0
EN

Stack Overflow用户

发布于 2017-02-04 01:14:24

你应该用块密码。

我建议Zend\Crypt\Crypt密码或\Sodium\crypto_secretbox

两者都很容易正确使用,并且有清晰的文档。

而openssl_crypt用相同的数据返回不同的字符串是安全所必需的。上述两种方法都会起到同样的作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42035088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档