java openssl 签名_基于OpenSSL的一些常用加密签名算法

本文介绍了如何在Java中使用OpenSSL库实现MD5、SHA512、DES、RSA加解密以及RSA+MD5签名验证。内容包括算法封装、RSA密钥对生成、公钥加密和私钥解密、签名与验证。强调了RSA加密和签名过程中的关键区别,提供了易于使用的API示例。
摘要由CSDN通过智能技术生成

目前包括:MD5、SHA512、DES、RSA加解密、RSA+MD5签名验证算法,在openssl基础上再进行封装,使用简单,头文件需要包含openssl库,可以使用vcpkg自动管理,省去繁琐的配置工程的过程。

该RSA签名算法中,已将输入明文做了MD5处理。

注意RSA加密算法E,解密算法D,与RSA签名算法S,验证算法V,这里的EDSV互补相等,不要认为加密过程的E使用公钥,验证过程的V也使用公钥,就把两者混为一谈。

一看头文件就显得容易使用了

class COpenSSL

{

public:

COpenSSL();

~COpenSSL();

// ---- md5摘要哈希 ---- //

void md5(const std::string &srcStr, std::string &encodedHexStr);

// ---- sha256摘要哈希 ---- //

void sha256(const std::string &srcStr, std::string &encodedHexStr);

// ---- des对称加解密 ---- //

// 加密 ecb模式

std::string des_encrypt(const std::string &clearText, const std::string &key);

// 解密 ecb模式

std::string des_decrypt(const std::string &cipherText, const std::string &key);

// 函数方法生成密钥对

void generateRSAKey(std::string strKey[2]);

// 命令行方法生成公私钥对(begin public key/ begin private key)

// 找到openssl命令行工具,运行以下

// openssl genrsa -out prikey.pem 1024

// openssl rsa - in privkey.pem - pubout - out pubkey.pem

// 公钥加密

std::string rsa_pub_encrypt(const std::string &clearText, const std::string &pubKey);

// 私钥解密

std::string rsa_pri_decrypt(const std::string &cipherText, const std::string &priKey);

//私钥签名

std::string signMessage(std::string privateKey, std::string plainText);

//公钥验证

bool verifySignature(std::string &publicKey, std::string &plainText, std::string &signatureBase64);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值