📌Golang📌应用📌加密算法📌0-常用加密算法.txt
对称式加密就是加密和解密使用同一个密钥,通常称之为“Session Key”。
非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件。

对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。
基于“对称密钥”的加密算法主要有RC2、RC4、RC5、RC6、Blowfish、DES、TripleDES、AES等。
    RC4 算法是一种在电子信息领域加密的技术手段,用于无线通信网络,加解密速度快。
    DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合;
    3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高;
    AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高。
工作模式:
    ECB - Electronic Code Book, 电子密码本模式
    CBC - Cipher Block Chaining, 密码块链模式
    CFB - Cipher FeedBack, 密文反馈模式
    OFB - Output Feedback, 输出反馈模式
    CTR - Counter, 计数器模式
填充模式:
    Pkcs5/Pkcs7 填充至符合块大小的整数倍,填充值为填充数量数。Pkcs5的块大小应为8个字节,而Pkcs7的块大小可以在1~255的范围内。
    Iso10126 填充至符合块大小的整数倍,填充值最后一个字节为填充的数量数,其他字节随机处理。
    AnsiX923 填充至符合块大小的整数倍,填充值最后一个字节为填充的数量数,其他字节填0。
    以上三种填充模式最后一个字节都是填充的数量,去除填充时可精确裁剪。
ECB和CBC模式需要填充,CFB/OFB/CTR模式不需要填充。

非对称加密算法主要有RSA、Elgamal、DSA、DH、ECC(椭圆曲线加密算法)。使用最广泛的是RSA算法。

"crypto/cipher"包实现了多个标准的用于包装底层块加密算法的加密算法实现。