本文小编为大家详细介绍“php对称加解密的问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“php对称加解密的问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
1、mcrypt 扩展 还是 openssl 扩展?
php7 弃用了 mcrypt 扩展并建议使用openssl来进行加解密
2、DES,3DES,AES?
DES 是一种较旧的对称加密算法。它的安全性已经不能满足当前的需求,而且它的性能也比 AES 差。
3DES本质也是DES,只是在DES的基础上加密了3次,同上基本嗝屁,技术选型的时候,尽量避免这两种机密算法
AES 是一种高级加密标准(Advanced Encryption Standard),它是目前被广泛使用的对称加密算法。AES 的安全性非常高,而且它还具有较高的性能。
3、AES-128-X ,AES-196-X 还是 AES-256-X?
128,196,256就是密钥长度的意思
128就是128bit 16个字节,比如这个密钥:1234123412341234
如果密钥超出16字节后面多余的部分会被直接无视掉
4、五种加密模式
ECB Electric CodeBook 电码本模式
CBC Cipher Block Chaining 密码分组链接模式
这种模式需要一个向量值iv,比ECB更加安全
示例代码:
$my_method = 'aes-128-cbc'; //算法
$key = "1234567812345678"; //128bit秘钥
$data = "asxsaxasdlkasjdiqi";
//输入算法获取向量长度
$iv_length = openssl_cipher_iv_length( $my_method );
//根据长度获取向量 函数会给$cstrong赋bool值,判断是否使用了强加密算法,一般为true
$iv = openssl_random_pseudo_bytes( $iv_length, $cstrong );
//加密
$enc_data = openssl_encrypt($data, $my_method, $key, OPENSSL_RAW_DATA, $iv);
//解密
$dec_data = openssl_decrypt($enc_data, $my_method, $key, OPENSSL_RAW_DATA, $iv);
CFB Cipher FeedBack 密码反馈模式
OFB Output FeedBack 输出反馈模式
CTR Counter Mode 计算器模式
同一种算法下的不同分组加密迭代模式,比如AES-128-ECB,指的是使用AES算法,秘钥是128bit长度,迭代方式是ECB,用AES-128-ECB算法的加密的密文只能用AES-128-ECB来解密
5、怎么查看可用的加密方法?
print_r(openssl_get_cipher_methods());
//
Array
(
[0] => aes-128-cbc
...
[19] => aes-192-cbc
...
[35] => aes-256-cbc
...
[54] => aria-128-cbc
...
[80] => aria-256-ofb
[81] => camellia-128-cbc
...
[102] => camellia-256-ctr
...
[105] => chacha20
...
[107] => des-ede-cbc
...
[116] => des-ede3-ofb
[117] => des3-wrap
[118] => null
[119] => sm4-cbc
)
读到这里,这篇“php对称加解密的问题怎么解决”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。