Tag: rsa

验证Java上的AWS ID令牌

我在亚马逊使用Cognito来验证我的移动用户,一旦完成登录,Cognito提供了一组令牌,我在后端使用了id令牌。 我遵循https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with在您的Web API中使用ID令牌和访问令牌一节中的步骤-identity-providers.html我卡在6步。 据我所见,我从字符串亚马逊得到的模数和指数,我必须与这些,以验证JWT签名建立一个公钥。 我不知道如何在String中使用这两个参数来构建PublicKey。

Java / Kotlin使用私钥和公钥加密AES密钥

所以我最近看到一个来自computerphile的视频,他们说当使用加密时,你应该使用AES密钥并用公钥和私钥对这个密钥进行加密。 这意味着:我有一个别人的公钥和我自己的私钥。 使用你自己的私钥加密它的原因是,这验证了消息必须来自我,因为没有其他人拥有我的私钥,所以使用我的公钥加密只能处理来自我的消息。 问题是,我第一次加密后,字节数组outcomming变得太长,我不能再加密它。 有没有解决的办法? 这是我的代码: val aKey = generateAESKey() val kG = KeyPairGenerator.getInstance("RSA") kG.initialize(2048) val own = kG.genKeyPair() val strange = kG.genKeyPair() String(aKey.encoded).encryptRSA(strange.public).encryptRSA(own.public) fun generateAESKey(): Key { val generator = KeyGenerator.getInstance("AES") generator.init(128) return generator.generateKey() fun String.encryptRSA(key: Key): String { val encryptCipher = Cipher.getInstance("RSA/ECB/PKCS1Padding") encryptCipher.init(Cipher.ENCRYPT_MODE, key) val cipherText = encryptCipher.doFinal(this.toByteArray(charset("UTF- 8"))) return String(cipherText) } fun […]