RSA+Base64加密

这段时间要做一个业务需求,说是为了安全起见把数据请求用RSA加密。然后咨询了下后台是怎么个加密方法,然后后台就给了个公钥和私钥,说,公钥加密,私钥加签,之后再Base64加密。上网搜索,整理了下,就得出如下结论,话不多说,直接上代码:

注意:RSA的公私密有格式的区分:PKCS#1 和 PKCS8,PKCS#1 是php使用的,PKCS8为java和客户端使用。切记

  • 首先!来个宏
#define PublicKEY  @"后台提供的公钥字符串"
#define PrivateKey @"后台提供的私钥字符串"
  • 其次,我们要用到一个第三方,这个第三方叫**HBRSAHandler**
导入头文件
 - #import "HBRSAHandler.h"
 HBRSAHandler这个库在使用的时候,这个只需要在Build Setting 里面的 Header search 
 path 和Library search path 这两个路径,把 HBRSAHandler里面的openssl里面的inc
 lude里面的openssl路劲拖进去就可以了。

然后,我们写入公钥和私钥

 HBRSAHandler* handler = [HBRSAHandler new];
    [handler importKeyWithType:KeyTypePrivate andkeyString:PrivateKey];
    [handler importKeyWithType:KeyTypePublic andkeyString:PublicKEY];

再接着,我们将需要加密和加签的值传入

  NSDictionar
### Python 中 RSA 加密后进行 Base64 编码失败解决方案 当处理 Python 中的 RSA 加密并随后执行 Base64 编码时,可能会遇到多种问题。通常这些问题源于数据类型的不匹配或编码方式的选择不当。 #### 数据类型一致性 确保用于加密的消息是以字节形式表示的字符串而不是 Unicode 字符串。这是因为许多密码库期望输入为字节序列而非字符序列[^1]。 ```python message = "Hello, world!".encode('utf-8') # 将消息转换成字节数组 ``` #### 正确使用加密库 采用合适的库来实现 RSA 加密非常重要。`cryptography` 是一个广泛使用的安全库,在此提供了一个简单的例子说明如何先用它来进行 RSA 加密再做 base64 编码: ```python from cryptography.hazmat.primitives.asymmetric import rsa, padding from cryptography.hazmat.primitives import hashes import base64 private_key = rsa.generate_private_key( public_exponent=65537, key_size=2048, ) public_key = private_key.public_key() encrypted_message = public_key.encrypt( message, padding.OAEP( mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None ) ) encoded_message = base64.b64encode(encrypted_message).decode('utf-8') print(encoded_message) ``` 这段代码展示了如何创建一对公私钥对,并利用公共部分对给定的信息进行了加密操作;之后通过 `base64.b64encode()` 函数实现了 BASE64 的编码过程[^2]。 #### 处理异常情况 如果仍然存在错误,则可能是由于某些特定环境下的配置问题或者是版本兼容性的问题所引起的。建议仔细阅读相关文档以及检查是否有最新的更新可用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值