双向加密算法

原创 2012年03月30日 18:12:49

一般如果使用MD5()和SHA1()等普通加密算法都是单向加密的,而且2个相同的string加密后的结果是一样的~所以现在我找到了一种可以进行双向加密的库,即可以加密后解密得到原值,并保证每个值不同。

使用前保证在php.ini中打开了extension=php_mcrypt.dll

 

<?php

function encrypt($encrypt,$key){

$iv = mcrypt_create_iv( mcrypt_get_iv_size(MCRYPT_DES,MCRYPT_MODE_ECB) , MCRYPT_RAND );

//对信息加密

$passcrypt = mcrypt_encrypt( MCRYPT_DES,$key,$encrypt,MCRYPT_MODE_ECB,$iv );

//对加密信息进行编码

$encode = base64_encode($passcrypt);

return $encode;

}

 

function decrypt($decrypt,$key){

$decoded = base64_decode($decrypt);

$iv = mcrypt_create_iv(  mcrypt_get_iv_size(MCRYPT_DES,MCRYPT_MODE_ECB) , MCRYPT_RAND );

//对信息进行解密

$decrypted = mcrypt_decrypt( MCRYPT_DES,$key,$decoded,MCRYPT_MODE_ECB,$iv );

return $decrypted;

}

//for example

$key = "11111";

$content = "xiaozhe";

$encrypted = encrypt($content,$key);

$decrypted = decrypt($encrypted,$key);

//输出

echo "加密后的信息为:".$encrypted."<br/>";

echo "解密后的信息为:".$decrypted."<br/>";

?>

 

加密后的信息为:VwxvN7UwXZM= 
解密后的信息为:xiaozhe

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

几种常见加密算法解析及使用

1.分类 加密算法首先分为两种:单向加密、双向加密。 单向加密是不可逆的,也就是只能加密,不能解密。通常用来传输类似用户名和密码,直接将加密后的数据提交到后台,因为后台不需要知道用户名和密码,可以直接...

DES 双向加密算法 DESUtil

package com.xgh.encryption.algorithm.test; import java.security.SecureRandom; import javax.crypto....
  • down177
  • down177
  • 2015年02月10日 15:24
  • 736

C#实现字符串SHA-256加密算法

  • 2017年11月16日 12:53
  • 93KB
  • 下载

AES加密算法代码

  • 2017年11月16日 10:40
  • 12KB
  • 下载

Java实现文件的RSA和DES加密算法

Java实现文件的RSA和DES加密算法 一、 基础知识   根据密钥类型不同将现代密码技术分为两类:对称加密算法(秘密钥匙加密)和非对称加密算法(公开密钥加密)。   对称钥匙加密系统是加密和...

Java 3des加密算法ECB模式

  • 2017年11月10日 09:54
  • 9KB
  • 下载

C#MD5加密算法的实例

using System; using System.Collections.Generic; using System.Text; using System.Security.Cryptograph...

AES加密算法

  • 2017年10月24日 16:23
  • 6KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:双向加密算法
举报原因:
原因补充:

(最多只允许输入30个字)