环球观天下!php对称加解密的5个问答小结

时间:2022-12-20 18:04:10       来源:PHP中文网
本篇文章给大家带来了关于PHP的相关知识,其中主要介绍了有关php对称加解密的相关问题,共有5个常见问题,下面一起来看一下,希望对大家有帮助。


【资料图】

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更加安全【推荐学习:《PHP视频教程》】

示例代码:

$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对称加解密的5个问答小结的详细内容,更多请关注php中文网其它相关文章!

关键词: 加密算法 相关文章 常见问题