java - 用于 Java 的 PublicKey.load_pkcs1
问题描述
我正在寻找加载 PEM 公钥来加密一个值。在 Python 中,我只会使用更高级别的函数,例如PublicKey.load_pkcs1
. 我无法在任何地方为 Java/Scala 找到这样的功能。
这样可用还是我需要在 Python 实现之后重新实现?
编辑:
内容是:
-----BEGIN RSA PUBLIC KEY-----
...
-----END RSA PUBLIC KEY-----
解决方案
完成这项工作非常简单。您只需要像这样从 Scala 调用 Python 脚本:
val encryptedValue: String = Seq("python3", "foobar.py", pemKey, value).!!
在 Python 中,您可以通过以下方式简单地实现 PKCS1 读取:
import base64
import rsa
import sys
pemKey = sys.argv[1]
value = sys.argv[2]
pk = rsa.PublicKey.load_pkcs1(bytes(pemKey, 'utf-8'))
encrypted = base64.b64encode(
rsa.encrypt(value.encode('utf-8'), pk)).decode('utf-8')
print(encrypted)
推荐阅读
- java - 服务器未能以有效的 HTTP 响应进行响应
- android - koin 将 CoroutineScope 作为 RoomDatabaseCallback 的依赖项传递
- composer-php - 尝试使用作曲家安装脚本
- bokeh - 如何使用交互式按钮实现选项卡生成器?
- hadoop - 如何在配置单元中添加具有静态值的动态列
- html - 使用绝对定位时无法使最大宽度工作
- java - 无法获取数组列表中的计数元素
- ionic-framework - 单击离子项目 Ionic 4 时是否有不触发复选框的方法?
- amazon-web-services - 如何利用 AWS::Serverless::LayerVersion 在我的 AWS Lambda 函数中使用外部库
- tableau-api - 在表格中计算前一天的产品率