php的mcrypt加密步骤过程

php 的 mcrypt 加密,想使用对称算法,解决小块内容(比如 url、post)网上传输的安全性。即加密、解密用同一个密码。官方文档有个非常完整的演示功能的例子,大概顺序是:

  • 打开 module: mcrypt_module_open()
  • 生成 IV: mcrypt_get_iv_size() -> mcrypt_create_iv()
  • 得到 key/密钥/密码: 
  • 初始化(引擎?): mcrypt_generic_init()
  • 进行加密操作: mcrypt_generic()
  • 关闭(引擎?): mcrypt_generic_end()
  • 重新初始化(引擎?): mcrypt_generic_init()
  • 进行解密操作: mdecrypt_generic() 
  • 关闭(引擎?): mcrypt_generic_end()
  • 关闭 module : mcrypt_module_close()

代码示例

<?php

function my_encrypt($string) {
 $key = 'supersecret';
 $key = md5($key);
 //指定初始化向量iv的大小:
 $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
 //创建初始化向量:
 $iv      = mcrypt_create_iv($iv_size, MCRYPT_RAND);

 /* Open module, trim key to max length */
 $td = mcrypt_module_open('twofish','','ecb', '');
 $key = substr($key, 0,mcrypt_enc_get_key_size($td));

 /* Initialize encryption handle
  *
  */
 if (mcrypt_generic_init($td, $key, $iv) != -1) {
  /* Encrypt data */
  $c_t = mcrypt_generic($td, $string);
  mcrypt_generic_end($td);
  mcrypt_module_close($td);
  return $c_t;
 } //end if
}

function my_decrypt($string) {
$key = 'supersecret';
$key = md5($key);
//指定初始化向量iv的大小:
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
//创建初始化向量:
$iv      = mcrypt_create_iv($iv_size, MCRYPT_RAND);

/* Open module, trim key to max length */
$td = mcrypt_module_open('twofish','','ecb', '');
$key = substr($key, 0,mcrypt_enc_get_key_size($td));

/* Initialize encryption handle
* (use blank IV)
*/
if (mcrypt_generic_init($td, $key, $iv) !=-1) {

/* Encrypt data */
$c_t = mdecrypt_generic($td, $string);
mcrypt_generic_end($td);
mcrypt_module_close($td);
return trim($c_t); //trim to remove
//padding
} //end if
}

 

转载于:https://www.cnblogs.com/kennyhr/p/3436041.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值