• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

还是解码有关问题,依旧有点有关问题

php 搞代码 4年前 (2022-01-23) 18次浏览 已收录 0个评论

还是解码问题,,依旧有点问题

PHP code

<!---ecms Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?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);   return array(trim(base64_encode($crypttext)),$iv); //encode for cookie}function decryptCookie($value,$iv){       if(!$value){return false;}   $value = base64_decode($value);   $key = 'paxospass1234!';   $text = $value;  // $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_<b style="color:transparent">(、本文来源gao@!dai!ma.com搞$$代^@码网*</b><i>搞gaodaima代码</i>256, $key, $text, MCRYPT_MODE_CBC, $iv);   return $decrypttext;}$str="this is for encry";$s=encryptCookie($str);echo decryptCookie($s[0],$s[1]);?>

没错。这函数正确,但是问题是,我要发到邮件里的是加密的代码,但是解码要到另一个网页,

问题是这个iv 打印出来时很多的方框框乱码,,怎么处理,,或者怎么让iv固定,我直接写$iv=’123′ 还报警告

——解决方案——————–
呵呵,你咋直接用了那个函数了,我只是提供下简单示例。
实际生产环境肯定是加密是一端,解密是另一端的。
所以你是问另一端怎么得到那个随机不定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);?>


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:还是解码有关问题,依旧有点有关问题
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址