`
bingya
  • 浏览: 56179 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

php 加密解密类(含公钥)

    博客分类:
  • php
 
阅读更多

 

<?php 
class  Crypt{ 

protected $key = "";    //公钥 

private function keyED($txt,$encrypt_key) 
{ 
$encrypt_key = md5($encrypt_key); 
$ctr=0; 
$tmp = ""; 
for ($i=0;$i<strlen($txt);$i++) 
{ 
if ($ctr==strlen($encrypt_key)){ 
$ctr=0; 
} 
$tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1); 
$ctr++; 
} 
return $tmp; 
} 

public function encrypt($txt,$key="") 
{ 
if(empty($key)){ 
$key=$this->key; 
} 
srand((double)microtime()*1000000); 
$encrypt_key = md5(rand(0,32000)); 
$ctr=0; 
$tmp = ""; 
for ($i=0;$i<strlen($txt);$i++) 
{ 
if ($ctr==strlen($encrypt_key)){ 
$ctr=0; 
} 
$tmp.= substr($encrypt_key,$ctr,1) . 
(substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1)); 
$ctr++; 
} 
return $this->keyED($tmp,$key); 
} 

public function decrypt($txt,$key="") 
{ 
if(empty($key)){ 
$key=$this->key; 
} 

$txt = $this->keyED($txt,$key); 
$tmp = ""; 
for ($i=0;$i<strlen($txt);$i++) 
{ 
$md5 = substr($txt,$i,1); 
$i++; 
$tmp.= (substr($txt,$i,1) ^ $md5); 
} 
return $tmp; 
} 

public function setKey($key) 
{ 
if(empty($key)){ 
return null; 
} 
$this->key=$key; 
} 

public function getKey() 
{ 
return $this->key; 
} 

} 
$string = "http://www.52blogger.com"; 
$crypt= new Crypt(); 
$crypt->setKey("http://www.52blogger.com"); 
$enc_text = $crypt->encrypt($string,$crypt->getKey()); 
$dec_text = $crypt->decrypt($enc_text,$crypt->getKey()); 
echo "加密前 : $string <br/>\n"; 
echo "加密后 : $enc_text <br/>\n"; 
echo "解密后 : $dec_text \n"; 
?> 
分享到:
评论

相关推荐

    asp.net RSA 私钥加密公钥解密 能解 php Java 实现RSA加密互通

    asp.net RSA 私钥加密公钥解密 能解 php Java 实现RSA加密互通 ,PKCS#8 格式的的密钥文件 ,公钥解密 依赖于BouncyCastle.Crypto.dll

    PHP通过OpenSSL生成证书、密钥并且加密解密数据,以及公钥,私钥和数字签名

    PHP通过OpenSSL生成证书、密钥并且加密解密数据,以及公钥,私钥和数字签名的理解 php代码简单生成 容易理解

    PHP-RSA加密解密,支持分段解密

    PHP的RSA加密解密类,支持RSA分段解密,可用于解密APP发送的较长的字符串。 使用方法: Rsa::privDecrypt($encryptedString); //RSA私钥解密 Rsa::privEncrypt($string); //RSA私钥加密 Rsa::publicDecrypt($...

    js和php配合的rsa openssl 加密解密函数

    使用公钥加密,私钥解密的方法,可以使数据在网络上安全传输,即使任何人获取到了密文,也获取到了js代码里的私钥或公钥,他也因为无法获取到与之配对的私钥或公钥而对密文毫无办法。 但是注意:公钥私钥2对,php用...

    Ras加密解密,PHP和JAVA互通

    RSA,常说的非对称加密。加密解密密钥不一致,它们是成对出现,本工具密钥生成是PEM格式。公钥加密的私钥解密,私钥加密的要公钥解密。PHP和Java互通,亲测有效。

    私钥加密公钥解密JAVA、C#、PHP互通

    私钥加密公钥解密

    RSA加密解密 PHP JS

    使用JS RSA公钥加密,可使用PHP RSA私钥解密、使用PHP RSA公钥加密,可使用JS RSA私钥解密

    Delphi(delphi7-XE)标准RSA加密,解密,签名.与C,Java,php等通用

    Delphi-XE RSA加密,解密,签名.密钥对生成工具.与C,Java,php等互通加解密

    PHP 公私钥加解密

    自带公私钥文件和加解密demo,可通过openssl重新生成密钥文件 确保上传的内容合法合规,涉及侵权内容将会被移除

    利用PHP实现数据的加密及解密

    利用PHP实现数据的加密及解密 利用PHP实现数据的加密及解密

    Delphi XE2实现带汉字的通用RSA加解密算法

    使用网上下载的RSAOpenSSL单元实现了通用的RSA加解密算法。加密结果可用在线加解密网址成功解密。Demo使用XE2版本开发,支持对汉字加解密,附件包含了自制的公私钥证书(标准的PEM格式),可直接用来测试。

    crypto:使用私有公钥加密和解密数据

    使用私钥/公钥对数据进行加密和签名 该软件包使您可以轻松生成专用/公用密钥对,并使用这些密钥对消息进行加密/解密。 use Spatie \ Crypto \ Rsa \ KeyPair ; use Spatie \ Crypto \ Rsa \ PrivateKey ; use ...

    php rsa 加密,解密,签名,验签详解

    php rsa 加密,解密,签名,验签 由于对接第三方机构使用的是Java版本的rsa加解密方法,所有刚开始在网上搜到很多PHP版本的rsa加解密,但是对接java大多都不适用。 以下php版本是适用于对接java接口,java适用密钥再...

    PHP rsa加密解密使用方法

    1、加密解密的第一步是生成公钥、私钥对,私钥加密的内容能通过公钥解密(反过来亦可以) 下载开源RSA密钥生成工具openssl(通常Linux系统都自带该程序),解压缩至独立的文件夹,进入其中的bin目录,执行以下命令:...

    实用的PHP带公钥加密类分享(每次加密结果都不一样哦)

    WEB交互安全一直是个各大网站的首要解决方案,本文介绍的PHP加密类非常实用哦,带有公钥,这是最大的亮点,没有公钥是不能解密的,加密度非常高。 类代码: &lt;?php /** * PHP加密类 * 琼台博客 */ class Jiami...

    PHP基于openssl实现的非对称加密操作示例

    使用非对称加密主要是借助openssl的公钥和私钥,用公钥加密私钥解密,或者私钥加密公钥解密。 1.安装openssl和php的openssl扩展 2.生成私钥:openssl genrsa 用于生成rsa私钥文件,生成是可以指定私钥长度和密码保护...

    php的RSA加密解密算法原理与用法分析

    本文实例讲述了php的RSA加密解密算法原理与用法。分享给大家供大家参考,具体如下: 最近因为工作的需要,要倒腾支付宝支付相关的知识,因为支付宝应用了RSA加密机制,个人对此并不了解,所以在这里写下一篇总结。 1...

    php rsa加密解密使用详解

    1、加密解密的第一步是生成公钥、私钥对,私钥加密的内容能通过公钥解密(反过来亦可以) 下载开源RSA密钥生成工具openssl(通常Linux系统都自带该程序),解压缩至独立的文件夹,进入其中的bin目录,执行以下命令...

    php版本rsa加密算法

    php版本基于rsa算法包含公钥加密,私钥解密/私钥加密,公钥解密.使用openssl实现非对称加密

Global site tag (gtag.js) - Google Analytics