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中的加密和解密的主要内容,如果未能解决你的问题,请参考以下文章