后端开发|php教程
mcrypt,value,iv,RIJNDAEL,size
后端开发-php教程
还是解码问题,,依旧有点问题
PHP code
小程序同城源码,ubuntu关机太久,tomcat前端跨域问题,桌面爬虫箱,php技术的应用php容器技术,黄冈seo关键词优化经验技巧lzw
没错。这函数正确,但是问题是,我要发到邮件里的是加密的代码,但是解码要到另一个网页,
手机号码系统源码,ubuntu设置静态网络,tomcat的名字怎么更改,html做爬虫,php 做rpc,贵州免费seo关键词优化策略lzw
问题是这个iv 打印出来时很多的方框框乱码,,怎么处理,,或者怎么让iv固定,我直接写$iv=’123′ 还报警告
小清新博客网站源码,逆天插件vscode,ubuntu 字符模式,tomcat网络访问权限,爬虫姐,百度网盘 php源码,武汉seo优化哪里有,优惠券搜索网站源码,直播网站前端模板lzw
——解决方案——————–
呵呵,你咋直接用了那个函数了,我只是提供下简单示例。
实际生产环境肯定是加密是一端,解密是另一端的。
所以你是问另一端怎么得到那个随机不定iv吧?
因为CBC的iv固定是32字节的,所以直接把它拼进加密串就行了
PHP code
<?phpfunction encryptCookie($value){ if(!$value){return false;} $key = paxospass1234!; $text = $value; $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC); $iv= mcrypt_create_iv($iv_size, MCRYPT_RAND); $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256,$key,$text, MCRYPT_MODE_CBC, $iv); $ivencode = mcrypt_encrypt(MCRYPT_RIJNDAEL_256,$crypttext,$iv,MCRYPT_MODE_ECB);//其实直接拼接就可以,这里再做一次加密 return base64_encode($crypttext.$ivencode); //encode for cookie,iv拼接到串尾}function decryptCookie($value){ if(!$value){return false;} $value = base64_decode($value); $rvalue = substr($value,0,-32);//原加密串 $iv= substr($value,-32);//iv $iv= mcrypt_decrypt(MCRYPT_RIJNDAEL_256,$rvalue,$iv,MCRYPT_MODE_ECB);//解密iv $key = paxospass1234!; $text = $rvalue; // $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC); // $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_CBC, $iv);return $decrypttext;}$str="this is for encry";$s=encryptCookie($str);echo "encrypt:".$s."
";echo "decrypt:".decryptCookie($s);?>