我需要使用AEAD在两个用户之间共享信息,其中一部分必须进行加密,而部分则应以明文形式保存。 一旦使用AES / GCM加密了消息,是否有API可以检查密文标签并访问相关数据? 更详细地: 我正在使用带有Bouncycastle的Java 7作为提供程序,并且已经成功使用相应的API成功加密和解密了我的数据: private byte[] encrypt(SecretKey key, byte[] nonce, byte[] message, byte[] associatedData) throws ... { …

2020年1月3日 0条评论 33点热度 阅读全文

我在我的android项目中使用AES GCM身份验证,并且工作正常。但是,与openssl API生成标记相比,身份验证标记存在一些问题。请在下面找到Java代码: SecretKeySpec skeySpec = new SecretKeySpec(key, "AES"); byte[] iv = generateRandomIV(); IvParameterSpec ivspec = new IvParameterSpec(iv); Cipher cipher = Cipher.getInstance("AE…

2019年10月24日 0条评论 9点热度 阅读全文

我正在使用Cipher进行加密/解密。一直很好,但是现在在处理大数组字节时遇到问题。 这是我的实现: val cipher = Cipher.getInstance("AES/GCM/NoPadding") cipher.init(Cipher.ENCRYPT_MODE, getSecretKey()) val encryptedData = cipher.doFinal(textToEncrypt.toByteArray(StandardCharsets.UTF_8)) 如前所述,仅当输入文本太大时,问题才会发生…

2019年5月28日 0条评论 11点热度 阅读全文

我正在尝试在Android上使用javax.crypto.Cipher使用AES-GCM加密数据块中的数据流。据我了解,一个人可以多次使用Cipher.update进行多部分加密操作,并通过Cipher.doFinal完成。但是,当使用AES / GCM / NoPadding转换时,Cipher.update拒绝将数据输出到提供的缓冲区,并返回写入的0字节。直到我调用.doFinal为止,缓冲区才会在密码内部建立。这似乎也发生在CCM上(我假设使用其他身份验证模式),但适用于CBC等其他模式。 我认为GCM可以在…

2019年4月5日 0条评论 10点热度 阅读全文