加密算法

常见的加密算法分为对称加密和非对称加密。

对称加密:加密和解密者双方用相同的专有秘钥,进行加密和解密。代表加密算法有AES(RiJndael)、AES256

例如:

加密:

unsigned char key[] = "86723BC52333489dB535BCA82D2DCEB4";//must 32 bytes

RijndaelEncryption aesEncry(key,OD_ENCRYPT, NULL);
 unsigned char encodePwd[128];
memset(encodePwd, '\0', 128);
size_t encodeseize = aesEncry.encode((unsigned char*)truePwd.c_str(), truePwd.length(), encodePwd);

string pwd = Base64::encode(encodePwd, encodeseize);

解密:

RijndaelEncryption aesEncry(key,OD_DECRYPT, NULL);
unsigned char decodePwd[128];
memset(decodePwd, '\0', 128);
string encodePwd1 = Base64::decode(encodePwd);
aesEncry.decode((unsigned char*)encodePwd1.c_str(), encodePwd1.length(), decodePwd);
string pwd = (char *)decodePwd;

非对称加密:有共用秘钥和私有秘钥,对加密用共有秘钥的时候,解密则用私有秘钥进行解密;

当加密用私有秘钥进行加密,则解密则用共有秘钥进行解密。因为加密和解密用的是不同的秘钥,因此叫做

非对称加密算法。代表加密算法有RSA。

比如:

1、Alice用Bob的公钥对数据进行了加密,将数据传递给了Bob;

2、Bob收到数据包之后,将Alice的公钥对数据再进行了一层加密,再传给Alice;

3、Alice收到Bob传过来的数据包之后,用自己的私钥将数据打开。

原则就是用对方的公钥进行加密,当自己收到对方的数据,用自己的私钥解开数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值