php中的加密和解密

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php中的加密和解密相关的知识,希望对你有一定的参考价值。

加密解决了什么问题?
生活着总是会建立通信,在通信的过程如果我们使用的是明文,这样有可能会被人家截获,或者截获后对数据进行篡改。这样我们可以使用加密来解决以上问题。所以加密解决了如下问题
1 防止通信内容被窃听。
2 防止通信内容被篡改。

对称加密:加密和解密使用的是同一个秘钥。
非对称加密:加密和解密使用的不是同一个秘钥,加密时使用公钥,解密就要使用私钥;加密时使用私钥,解密是就是用公钥。

DES加密是一种将64位明文密码加密成64位密文的对称加密的算法。(这种算法已经被破解了,)
技术图片
DES加密实现(选加密算法时要选择DES的算法)
1.在php中先打开openssl的扩展库
2.使用openssl_encrypt("要加密的串","要加密的算法","密串",选项,方向向量)加密;
3.使用openssh_decrypt("要解密的串","加密的算法","密串",选项,方向向量);

注意:**加密的算法可以通过openssh_get_gipher_methods()函数获取。
由于DES加密算法不安全,所以就出现了AES加密算法。
AES加密算法**
技术图片
AES加密实现(选加密算法时要选择AES的算法)
1.在php中先打开openssl的扩展库
2.使用openssl_encrypt("要加密的串","要加密的算法","密串",选项,方向向量)加密;
3.使用openssh_decrypt("要解密的串","加密的算法","密串",选项,方向向量);

注意:**加密的算法可以通过openssh_get_gipher_methods()函数获取。
RSA加密**是一种非对称的加密方式,即加密和解密使用的不是同一个秘钥,加密时使用公钥,解密就要使用私钥;加密时使用私钥,解密是就是用公钥。
技术图片
RSA加密的实现方式
1.首先要生成一对公钥和私钥,可以安装生成公钥和私钥的软件,也可以使用在线生成公钥和私钥的网站比如:web.chacuo.net/netrsakeypair
使用公钥加密的的函数openssh_public_encrypt() open_privete_decrypt 去解密
openssl_public_encrypt($str,$res,$publicKey); 将$str加密成$res
openssl_private_decrypt($res,$str,$privateKey);将res解密成$str
使用私钥加密的的函数openssh_private_encrypt() open_public_decrypt 去解密

openssl_private_encrypt($str,$res,$privateKey);将$str加密成$res
openssl_public_decrypt($res,$str,$publicKey);将res解密成$str
中间人
技术图片
使用https协议就能防止中间人
,以后会开一篇博客细聊.
hash(单项散列值)
hash 单项散列值,就是一个字符串对应一个唯一的字符串比如md5 sha1是一种映射

以上是关于php中的加密和解密的主要内容,如果未能解决你的问题,请参考以下文章

Java 中的 AES 128 加密 PHP 中的解密

php中的AES加密,然后用Javascript(cryptojs)解密

php和java中的加密和解密

如何使用php对mysql数据库中的数据进行加密和解密?

PHP PHP中的2路加密/解密w / mcrypt

PHP中的AES加密以在openssl中解密