首页 > 编程语言 > 详细

c c++ php常用的加密解密算法

时间:2020-09-20 20:19:51      阅读:55      评论:0      收藏:0      [点我收藏+]

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
)
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] => AES128
    [31] => AES192
    [32] => AES256
    [33] => BF
    [34] => BF-CBC
    [35] => BF-CFB
    [36] => BF-ECB
    [37] => BF-OFB
    [38] => CAMELLIA-128-CBC
    [39] => CAMELLIA-128-CFB
    [40] => CAMELLIA-128-CFB1
    [41] => CAMELLIA-128-CFB8
    [42] => CAMELLIA-128-CTR
    [43] => CAMELLIA-128-ECB
    [44] => CAMELLIA-128-OFB
    [45] => CAMELLIA-192-CBC
    [46] => CAMELLIA-192-CFB
    [47] => CAMELLIA-192-CFB1
    [48] => CAMELLIA-192-CFB8
    [49] => CAMELLIA-192-CTR
    [50] => CAMELLIA-192-ECB
    [51] => CAMELLIA-192-OFB
    [52] => CAMELLIA-256-CBC
    [53] => CAMELLIA-256-CFB
    [54] => CAMELLIA-256-CFB1
    [55] => CAMELLIA-256-CFB8
    [56] => CAMELLIA-256-CTR
    [57] => CAMELLIA-256-ECB
    [58] => CAMELLIA-256-OFB
    [59] => CAMELLIA128
    [60] => CAMELLIA192
    [61] => CAMELLIA256
    [62] => CAST
    [63] => CAST-cbc
    [64] => CAST5-CBC
    [65] => CAST5-CFB
    [66] => CAST5-ECB
    [67] => CAST5-OFB
    [68] => ChaCha20
    [69] => ChaCha20-Poly1305
    [70] => DES
    [71] => DES-CBC
    [72] => DES-CFB
    [73] => DES-CFB1
    [74] => DES-CFB8
    [75] => DES-ECB
    [76] => DES-EDE
    [77] => DES-EDE-CBC
    [78] => DES-EDE-CFB
    [79] => DES-EDE-ECB
    [80] => DES-EDE-OFB
    [81] => DES-EDE3
    [82] => DES-EDE3-CBC
    [83] => DES-EDE3-CFB
    [84] => DES-EDE3-CFB1
    [85] => DES-EDE3-CFB8
    [86] => DES-EDE3-ECB
    [87] => DES-EDE3-OFB
    [88] => DES-OFB
    [89] => DES3
    [90] => DESX
    [91] => DESX-CBC
    [92] => IDEA
    [93] => IDEA-CBC
    [94] => IDEA-CFB
    [95] => IDEA-ECB
    [96] => IDEA-OFB
    [97] => RC2
    [98] => RC2-40-CBC
    [99] => RC2-64-CBC
    [100] => RC2-CBC
    [101] => RC2-CFB
    [102] => RC2-ECB
    [103] => RC2-OFB
    [104] => RC4
    [105] => RC4-40
    [106] => RC4-HMAC-MD5
    [107] => SEED
    [108] => SEED-CBC
    [109] => SEED-CFB
    [110] => SEED-ECB
    [111] => SEED-OFB
    [112] => aes-128-cbc
    [113] => aes-128-cbc-hmac-sha1
    [114] => aes-128-cbc-hmac-sha256
    [115] => aes-128-ccm
    [116] => aes-128-cfb
    [117] => aes-128-cfb1
    [118] => aes-128-cfb8
    [119] => aes-128-ctr
    [120] => aes-128-ecb
    [121] => aes-128-gcm
    [122] => aes-128-ocb
    [123] => aes-128-ofb
    [124] => aes-128-xts
    [125] => aes-192-cbc
    [126] => aes-192-ccm
    [127] => aes-192-cfb
    [128] => aes-192-cfb1
    [129] => aes-192-cfb8
    [130] => aes-192-ctr
    [131] => aes-192-ecb
    [132] => aes-192-gcm
    [133] => aes-192-ocb
    [134] => aes-192-ofb
    [135] => aes-256-cbc
    [136] => aes-256-cbc-hmac-sha1
    [137] => aes-256-cbc-hmac-sha256
    [138] => aes-256-ccm
    [139] => aes-256-cfb
    [140] => aes-256-cfb1
    [141] => aes-256-cfb8
    [142] => aes-256-ctr
    [143] => aes-256-ecb
    [144] => aes-256-gcm
    [145] => aes-256-ocb
    [146] => aes-256-ofb
    [147] => aes-256-xts
    [148] => aes128
    [149] => aes128-wrap
    [150] => aes192
    [151] => aes192-wrap
    [152] => aes256
    [153] => aes256-wrap
    [154] => bf
    [155] => bf-cbc
    [156] => bf-cfb
    [157] => bf-ecb
    [158] => bf-ofb
    [159] => blowfish
    [160] => camellia-128-cbc
    [161] => camellia-128-cfb
    [162] => camellia-128-cfb1
    [163] => camellia-128-cfb8
    [164] => camellia-128-ctr
    [165] => camellia-128-ecb
    [166] => camellia-128-ofb
    [167] => camellia-192-cbc
    [168] => camellia-192-cfb
    [169] => camellia-192-cfb1
    [170] => camellia-192-cfb8
    [171] => camellia-192-ctr
    [172] => camellia-192-ecb
    [173] => camellia-192-ofb
    [174] => camellia-256-cbc
    [175] => camellia-256-cfb
    [176] => camellia-256-cfb1
    [177] => camellia-256-cfb8
    [178] => camellia-256-ctr
    [179] => camellia-256-ecb
    [180] => camellia-256-ofb
    [181] => camellia128
    [182] => camellia192
    [183] => camellia256
    [184] => cast
    [185] => cast-cbc
    [186] => cast5-cbc
    [187] => cast5-cfb
    [188] => cast5-ecb
    [189] => cast5-ofb
    [190] => chacha20
    [191] => chacha20-poly1305
    [192] => des
    [193] => des-cbc
    [194] => des-cfb
    [195] => des-cfb1
    [196] => des-cfb8
    [197] => des-ecb
    [198] => des-ede
    [199] => des-ede-cbc
    [200] => des-ede-cfb
    [201] => des-ede-ecb
    [202] => des-ede-ofb
    [203] => des-ede3
    [204] => des-ede3-cbc
    [205] => des-ede3-cfb
    [206] => des-ede3-cfb1
    [207] => des-ede3-cfb8
    [208] => des-ede3-ecb
    [209] => des-ede3-ofb
    [210] => des-ofb
    [211] => des3
    [212] => des3-wrap
    [213] => desx
    [214] => desx-cbc
    [215] => id-aes128-CCM
    [216] => id-aes128-GCM
    [217] => id-aes128-wrap
    [218] => id-aes128-wrap-pad
    [219] => id-aes192-CCM
    [220] => id-aes192-GCM
    [221] => id-aes192-wrap
    [222] => id-aes192-wrap-pad
    [223] => id-aes256-CCM
    [224] => id-aes256-GCM
    [225] => id-aes256-wrap
    [226] => id-aes256-wrap-pad
    [227] => id-smime-alg-CMS3DESwrap
    [228] => idea
    [229] => idea-cbc
    [230] => idea-cfb
    [231] => idea-ecb
    [232] => idea-ofb
    [233] => rc2
    [234] => rc2-128
    [235] => rc2-40
    [236] => rc2-40-cbc
    [237] => rc2-64
    [238] => rc2-64-cbc
    [239] => rc2-cbc
    [240] => rc2-cfb
    [241] => rc2-ecb
    [242] => rc2-ofb
    [243] => rc4
    [244] => rc4-40
    [245] => rc4-hmac-md5
    [246] => seed
    [247] => seed-cbc
    [248] => seed-cfb
    [249] => seed-ecb
    [250] => seed-ofb
)

 

c/cpp的加密解密算法库

https://github.com/openssl/openssl/tree/master/crypto

可以参考对照下基本全部移植过来了

 

还一个就是非常知名的Crypto++

官网 https://www.cryptopp.com/

https://github.com/weidai11/cryptopp

 

c c++ php常用的加密解密算法

原文:https://www.cnblogs.com/zx-admin/p/13699793.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!