【发布时间】:2020-02-12 03:57:00
【问题描述】:
我是 Android 新手,我已经开始研究现有的项目,其中包含一些加密算法,
以下是现有代码
var secureRandom = SecureRandom()
var masterKey = ByteArray(32)
secureRandom.nextBytes(masterKey)
var keyGen = KeyPairGenerator.getInstance("RSA")
keyGen.initialize(2048)
var keyPair = keyGen.generateKeyPair()
var pubKey = keyPair.public
var subjectPublicKeyInfo = SubjectPublicKeyInfo.getInstance(ASN1Sequence.getInstance(pubKey.encoded))
var pubKeyEncoded = Base64.encodeToString(subjectPublicKeyInfo.parsePublicKey().encoded, Base64.DEFAULT)
var sb = StringBuilder()
sb.append("-----BEGIN RSA PUBLIC KEY-----\n")
sb.append(pubKeyEncoded)
sb.append("\n-----END RSA PUBLIC KEY-----\n")
val publicKey = sb.toString()
val privateKey = keyPair.private as RSAPrivateKey
val string = StringWriter()
var writer = PemWriter(string)
writer.writeObject(privateKey)//<-----Getting an error like Type Mismatch
writer.close()
谁能帮我解决这个问题,我是这个加密领域的新手,任何人都可以建议我从哪里可以更深入地了解密码学,
从上面的代码我刚刚了解到我们得到了两个密钥,比如 AES 的公钥和私钥
我们正在通过以下代码加密公钥
var subjectPublicKeyInfo = SubjectPublicKeyInfo.getInstance(ASN1Sequence.getInstance(pubKey.encoded))
var pubKeyEncoded = Base64.encodeToString(subjectPublicKeyInfo.parsePublicKey().encoded, Base64.DEFAULT)
但我仍然不明白 SubjectPublicKeyInfo、ASN1Sequence、PemWriter 的用途,如果有人知道,请解释一下。
我也遇到了像Required PemObjectGenerator!这样的编译时错误发现RSAPrivateKey
【问题讨论】:
-
我认为这篇文章将帮助您了解加密。 proandroiddev.com/…
-
HI @JAYMIN 首先感谢,但仍然不能用上面的代码证明
标签: android kotlin cryptography bouncycastle spongycastle