由于工作中要和各个第三方平台对接API,接口之间通信就涉及到了加密或者验签,网上有很多关于php加解密的DEMO,但是混乱不堪,很多甚至还是PHP5的例子,在PHP7环境下根本无法运行,下面就放一些常见加解密的DEMO,包括RSA非对称加密,DES对称加密
常用的对称加密算法有DES与AES
1.对称密码中加密和解密使用的是同一个密码
2.对称密码中加密后的密文只有该对称密码才能解密
DES | AES | |
---|---|---|
密钥长度 | 56位 | 128, 192, 256 位 |
加密方式 | 对称分组密码 | 对称分组密码 |
加密轮数 | 16轮 | 128位10轮,192位12轮,256位14轮 |
安全性 | 被攻破 | 安全 |
速度 | 较慢 | 较慢 |
非对称密码(也称为公钥密码)与对称密码的不同点是非对称密码包含一个公钥和一个私钥
1.公钥和私钥是严格符合数学关系一一对应且不可互换的
2.公钥可以公开发布,私钥必须自己保管,不可以泄露
3.使用公钥加密的内容只有对应的私钥才能解密,使用私钥签名的内容只有对应的公钥才能解密
关于密码学的介绍可以看这篇文章TLS协议分析与现代加密通信协议设计,写的很详细了
RSA私钥加密,公钥验签
1 | /** |
RSA私钥分段加密,公钥解密
1 | //分段长度 |
DES加密(3des加密CBC模式,PKCS5Padding填充)
1 | /** |