在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
2020年9月20日13:04:47
为什么需要加密解密算法? 数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码为“密文”, 使其只能在输入相应的密钥之后才能显示出原容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。 该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。 比如api接口,数据传输,用户密码加密等、
php常用算法 环境 php 7.2.9 php的官方的加密解密扩展 https://www.php.net/manual/zh/refs.crypto.php $p = 'rasmuslerdorf'; p(md5($p)); // $hash = password_hash($p, PASSWORD_DEFAULT); $hash = password_hash($p, PASSWORD_BCRYPT); p($hash); // $options = [ // 'cost' => 12, // ]; // echo password_hash($p, PASSWORD_BCRYPT, $options); if (password_verify($p, $hash)) { echo 'Password is ok!'; } else { echo 'Invalid password.'; } p(hash_algos()); $bytes = random_bytes(5); p(bin2hex($bytes)); p(random_int(100, 999)); 上面是几个比较常用的关于密码的加算法
如果你需要更多强大的请查看 https://www.php.net/manual/zh/function.openssl-encrypt.php php基本把现存所有的openssl加密算法全部移植过来了,真的很不错
$ciphers = openssl_get_cipher_methods(); $ciphers_and_aliases = openssl_get_cipher_methods(true); $cipher_aliases = array_diff($ciphers_and_aliases, $ciphers); p($ciphers); p($ciphers_and_aliases); p($cipher_aliases); Array ( [0] => AES-128-CBC [1] => AES-128-CBC-HMAC-SHA1 [2] => AES-128-CBC-HMAC-SHA256 [3] => AES-128-CFB [4] => AES-128-CFB1 [5] => AES-128-CFB8 [6] => AES-128-CTR [7] => AES-128-ECB [8] => AES-128-OCB [9] => AES-128-OFB [10] => AES-128-XTS [11] => AES-192-CBC [12] => AES-192-CFB [13] => AES-192-CFB1 [14] => AES-192-CFB8 [15] => AES-192-CTR [16] => AES-192-ECB [17] => AES-192-OCB [18] => AES-192-OFB [19] => AES-256-CBC [20] => AES-256-CBC-HMAC-SHA1 [21] => AES-256-CBC-HMAC-SHA256 [22] => AES-256-CFB [23] => AES-256-CFB1 [24] => AES-256-CFB8 [25] => AES-256-CTR [26] => AES-256-ECB [27] => AES-256-OCB [28] => AES-256-OFB [29] => AES-256-XTS [30] => BF-CBC [31] => BF-CFB [32] => BF-ECB [33] => BF-OFB [34] => CAMELLIA-128-CBC [35] => CAMELLIA-128-CFB [36] => CAMELLIA-128-CFB1 [37] => CAMELLIA-128-CFB8 [38] => CAMELLIA-128-CTR [39] => CAMELLIA-128-ECB [40] => CAMELLIA-128-OFB [41] => CAMELLIA-192-CBC [42] => CAMELLIA-192-CFB [43] => CAMELLIA-192-CFB1 [44] => CAMELLIA-192-CFB8 [45] => CAMELLIA-192-CTR [46] => CAMELLIA-192-ECB [47] => CAMELLIA-192-OFB [48] => CAMELLIA-256-CBC [49] => CAMELLIA-256-CFB [50] => CAMELLIA-256-CFB1 [51] => CAMELLIA-256-CFB8 [52] => CAMELLIA-256-CTR [53] => CAMELLIA-256-ECB [54] => CAMELLIA-256-OFB [55] => CAST5-CBC [56] => CAST5-CFB [57] => CAST5-ECB [58] => CAST5-OFB [59] => ChaCha20 [60] => ChaCha20-Poly1305 [61] => DES-CBC [62] => DES-CFB [63] => DES-CFB1 [64] => DES-CFB8 [65] => DES-ECB [66] => DES-EDE [67] => DES-EDE-CBC [68] => DES-EDE-CFB [69] => DES-EDE-OFB [70] => DES-EDE3 [71] => DES-EDE3-CBC [72] => DES-EDE3-CFB [73] => DES-EDE3-CFB1 [74] => DES-EDE3-CFB8 [75] => DES-EDE3-OFB [76] => DES-OFB [77] => DESX-CBC [78] => IDEA-CBC [79] => IDEA-CFB [80] => IDEA-ECB [81] => IDEA-OFB [82] => RC2-40-CBC [83] => RC2-64-CBC [84] => RC2-CBC [85] => RC2-CFB [86] => RC2-ECB [87] => RC2-OFB [88] => RC4 [89] => RC4-40 [90] => RC4-HMAC-MD5 [91] => SEED-CBC [92] => SEED-CFB [93] => SEED-ECB [94] => SEED-OFB [95] => aes-128-cbc [96] => aes-128-cbc-hmac-sha1 [97] => aes-128-cbc-hmac-sha256 [98] => aes-128-ccm [99] => aes-128-cfb [100] => aes-128-cfb1 [101] => aes-128-cfb8 [102] => aes-128-ctr [103] => aes-128-ecb [104] => aes-128-gcm [105] => aes-128-ocb [106] => aes-128-ofb [107] => aes-128-xts [108] => aes-192-cbc [109] => aes-192-ccm [110] => aes-192-cfb [111] => aes-192-cfb1 [112] => aes-192-cfb8 [113] => aes-192-ctr [114] => aes-192-ecb [115] => aes-192-gcm [116] => aes-192-ocb [117] => aes-192-ofb [118] => aes-256-cbc [119] => aes-256-cbc-hmac-sha1 [120] => aes-256-cbc-hmac-sha256 [121] => aes-256-ccm [122] => aes-256-cfb [123] => aes-256-cfb1 [124] => aes-256-cfb8 [125] => aes-256-ctr [126] => aes-256-ecb [127] => aes-256-gcm [128] => aes-256-ocb [129] => aes-256-ofb [130] => aes-256-xts [131] => bf-cbc [132] => bf-cfb [133] => bf-ecb [134] => bf-ofb [135] => camellia-128-cbc [136] => camellia-128-cfb [137] => camellia-128-cfb1 [138] => camellia-128-cfb8 [139] => camellia-128-ctr [140] => camellia-128-ecb [141] => camellia-128-ofb [142] => camellia-192-cbc [143] => camellia-192-cfb [144] => camellia-192-cfb1 [145] => camellia-192-cfb8 [146] => camellia-192-ctr [147] => camellia-192-ecb [148] => camellia-192-ofb [149] => camellia-256-cbc [150] => camellia-256-cfb [151] => camellia-256-cfb1 [152] => camellia-256-cfb8 [153] => camellia-256-ctr [154] => camellia-256-ecb [155] => camellia-256-ofb [156] => cast5-cbc [157] => cast5-cfb [158] => cast5-ecb [159] => cast5-ofb [160] => chacha20 [161] => chacha20-poly1305 [162] => des-cbc [163] => des-cfb [164] => des-cfb1 [165] => des-cfb8 [166] => des-ecb [167] => des-ede [168] => des-ede-cbc [169] => des-ede-cfb [170] => des-ede-ofb [171] => des-ede3 [172] => des-ede3-cbc [173] => des-ede3-cfb [174] => des-ede3-cfb1 [175] => des-ede3-cfb8 [176] => des-ede3-ofb [177] => des-ofb [178] => desx-cbc [179] => id-aes128-CCM [180] => id-aes128-GCM [181] => id-aes128-wrap [182] => id-aes128-wrap-pad [183] => id-aes192-CCM [184] => id-aes192-GCM [185] => id-aes192-wrap [186] => id-aes192-wrap-pad [187] => id-aes256-CCM [188] => id-aes256-GCM [189] => id-aes256-wrap [190] => id-aes256-wrap-pad [191] => id-smime-alg-CMS3DESwrap [192] => idea-cbc [193] => idea-cfb [194] => idea-ecb [195] => idea-ofb [196] => rc2-40-cbc [197] => rc2-64-cbc [198] => rc2-cbc [199] => rc2-cfb [200] => rc2-ecb [201] => rc2-ofb [202] => rc4 [203] => rc4-40 [204] => rc4-hmac-md5 [205] => seed-cbc [206] => seed-cfb [207] => seed-ecb [208] => seed-ofb )
c/cpp的加密解密算法库 https://github.com/openssl/openssl/tree/master/crypto 可以参考对照下基本全部移植过来了 https://www.feistyduck.com/library/openssl-cookbook/online/ch-openssl.html# 英文官方OpenSSL的说明pdf,有时间翻译下
还一个就是非常知名的Crypto++ 官网 https://www.cryptopp.com/ https://github.com/weidai11/cryptopp 使用参考博客 https://blog.csdn.net/Lunar_Queen/column/info/25854
如果你想学习算法编写,以上 openssl和cryptopp是非常好的学习资料,整个git库挺大的 加速下载方法,在这里推荐一下,下面整个网站,对于网络环境比较烂的同学是非常不错的工具 https://gitclone.com/
git clone https://gitclone.com/github.com/weidai11/cryptopp git clone https://gitclone.com/github.com/openssl/openssl
|
2022-08-30
2022-08-17
2022-11-06
2022-08-17
2022-07-18
请发表评论