rsa 公钥格式

openssl rsa 默认输出的公钥格式为 PKCS#1 格式, java 生成的是 PKCS#8 格式,对于私钥没有格式之分。 openssl rsa 公钥加密采用的是 RSA/ECB/PKCS1Padding, 对应 java 也更应该设置。 public static byte[] publicDecrypt(PublicKey publicKey, byte[] encryptData) …

共享软件的互联网验证过程

简单版 根据 smbios 获取硬件信息 MD5 一下生成机器码 将机器码 BASE64 之后发送到服务器端 服务器端将 BASE64 解密后的机器码使用 RSA 私钥签名后发送回客户端 客户端使用 RSA 公钥再对信息进行签名验证,如正确则注册成功 复杂版 (单机单用户) 根据 smbios 获取硬件信息 MD5 一下生成机器码 提供用户的注册名 将机器码和相关注册名 BASE64 之后发送到服 …

RSA 加解密

加密 — 公钥 解密 — 私钥 签名 — 私钥 验证 — 公钥 如果使用私钥对数据进行加密的话,加密就没有意义,因为每个人都可以拥有公钥,所以每个人都可以用公钥进行解密。所以,通常使用私钥对摘要进行加密,然后把加密后的摘要追加到明文的后面,再使用对称密钥对明文和摘要进行整体加密。假如 a 为私钥拥有者,那么接收者 b 拿到密文后,可以用对称密钥解密, …

简单异或加密

Dont’ use XOR encryption only when you encrypt data. It’s weak. Combine it with other methods/algorithms. You can for ex. xor a string and then encrypt it with AES 256. Definitions and Includes #inclu …

sqlite3 加密

https://github.com/utelle/wxsqlite3 提供了加密版的 sqlite,支持 premake5 编译。 SQLite3 的加密函数说明 sqlite3_key 是输入密钥,如果数据库已加密必须先执行此函数并输入正确密钥才能进行操作,如果数据库没有加密,执行此函数后进行数据库操作反而会出现 “此数据库已加密或不是一个数据库文件” 的错误。 int sqlite3_key …

cryptopp 加解密的坑

C++ 下两大加密库, openssl 和 cryptopp,openssl 使用更广泛一些,不过编译起来得用命令行,且生成的都是动态库,不过接口是纯 C 的,调用方使用更方便一些; cryptopp 使用 C++ 模板编写,可编译为静态库使,不过使用不当,会莫名其妙的 crash。 cryptopp 的链式调用,new 出来的对象你看不到 delete,估计是调用方维持了指针,负责 delete …