dpm91915 2014-05-13 08:57
浏览 35

使用php加密和解密

I have the following code using for encryption

$key="company";
$value['service_id']="edit_details";
$encrypted_string=trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $value['service_id'], MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND))));

and i used the below code for decryption

$key="company";
$serviceId=$encrypted_string;
$decrypted_string=trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, base64_decode($serviceId), MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)));

I am not getting the original string edit_details.

I don't what is wrong in this.

  • 写回答

2条回答 默认 最新

  • douqian4411 2014-05-13 09:03
    关注

    So if you are getting the value by $_GET use like this

    $encrypted_string = trim(urlencode(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $value['service_id'], MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)))));
    

    when base64_encoded data is transferred , it may get corrupted if the data contains characters such as ?+/. so urlencode() is needed when a data is transferred.

    评论

报告相同问题?

悬赏问题

  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥100 已有python代码,要求做成可执行程序,程序设计内容不多
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助
  • ¥15 STM32控制MAX7219问题求解答