加密和验证。
加密机制保证数据的机密性,防止数据在传输过程中被窃听;
验证机制能保证数据真实可靠,防止数据在传输过程中被仿冒和篡改
加密功能,无法验证解密后的信息是否是原始发送的信息或完整。
采用HMAC(Keyed-Hash Message Authentication Code)功能,比较完整性校验值ICV 进行数据包完整性和真实性验证。
常用的验证算法包括:
消息摘要MD5(Message Digest 5)、
安全散列算法SHA1(Secure Hash Algorithm 1)、
SHA2。其中,MD5、SHA1算法安全性低,存在安全风险,不推荐使用。
在IPSec发送方 加密后的报文通过验证算法和对称密钥生成完整性校验值ICV,IP报文和完整性校验值ICV同时发给对端;
在IPSec接收方,使用相同的验证算法和对称密钥对加密报文进行处理,同样得到完整性校验值ICV,
然后比较完整性校验值ICV进行数据完整性和真实性验证,验证不通过的报文直接丢弃,验证通过的报文再进行解密
在RSA加密算法中,RSA公钥的public exponent通常都是65537,用base64来表示就是AQAB
C++ 开发
1.安装 sudo apt-get install openssl libssl-dev
2.代码
3.编译命令或者cmake
gcc -o rsa_en rsa.cpp -lssl -lcrypto
whereis openssl
openssl version -a
在 Linux 系统中,OpenSSL 的默认安装路径通常如下:
二进制文件:/usr/bin/openssl
库文件 :/usr/lib/libssl.so 和 /usr/lib/libcrypto.so
配置文件 :/etc/ssl/openssl.cnf
意味着你的编译环境中缺少了某些必要的库或头文件,或者链接设置不正确。
--缺少
--多个版本-选用的版本不对
--配置不正确
1.检查是否安装了 OpenSSL 3.0
2.检查系统安装了几个openssl
参考
Base64转换:AQAB=65537,你知道为什么吗? https://www.cnblogs.com/midea0978/archive/2007/05/22/755826.html