[英]Need basic encryption understanding from existing Android code
我是 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
我無法更詳細地幫助您,但我發現一件事
PEMWriter 已被棄用。 您沒有收到此消息,因為您是從不同的包(如 util 包)導入 PEMWritter
而是從
org.spongycastle.openssl.PEMWriter
那時你會收到警告,因為它已被棄用,所以不要在下面使用
JcaPEMWriter
它是通過使用以下包
org.spngycastle.openssl.jcajce.JcaPEMWriter
你的錯誤將消失
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.