gpt4 book ai didi

android - 需要对现有 Android 代码有基本的加密理解

转载 作者:行者123 更新时间:2023-12-02 13:33:05 24 4
gpt4 key购买 nike

我是 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()

谁能帮我解决这个问题,我在这个加密领域是全新的,有人建议我从哪里可以更深入地了解密码学,

从上面的代码我刚刚了解到我们得到了两个 key ,比如 AES 的公钥和私钥

我们正在通过以下代码加密公钥
  var subjectPublicKeyInfo = SubjectPublicKeyInfo.getInstance(ASN1Sequence.getInstance(pubKey.encoded))
var pubKeyEncoded = Base64.encodeToString(subjectPublicKeyInfo.parsePublicKey().encoded, Base64.DEFAULT)

但是我仍然不明白 SubjectPublicKeyInfo、ASN1Sequence、PemWriter 的用途,如果有人知道的话,请解释一下。

我也收到类似必需的编译时错误 PemObjectGenerator! 找到 RSAPrivateKey

最佳答案

我不能更详细地帮助你,但我发现一件事

PEMWriter 已被弃用。您没有收到此消息,因为您正在从不同的包(如 util 包)导入 PEMWritter

而是从

org.spongycastle.openssl.PEMWriter

那时你会收到警告,就像它已被弃用,所以不要在下面使用
JcaPEMWriter

它是通过使用以下包
org.spngycastle.openssl.jcajce.JcaPEMWriter

你的错误将消失

关于android - 需要对现有 Android 代码有基本的加密理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60180890/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com