我期待加载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)