当前位置: 首页 > 面试题库 >

Rijndael在Java中的支持

陆涵畅
2023-03-14
问题内容

我们需要用Java进行一些Rijndael开发。

对文章,图书馆等有什么建议对我们有帮助吗?

是否有任何指向密钥库维护的指针,以及如何安全地存储密钥?

编辑:

它需要是开源的。本质上,它只是使用Rijndael进行数据的标准加密/解密。


问题答案:

Java开箱即用地包含AES。Rijndael是AES。您不需要任何外部库。您只需要这样的东西:

byte[] sessionKey = null; //Where you get this from is beyond the scope of this post
byte[] iv = null ; //Ditto
byte[] plaintext = null; //Whatever you want to encrypt/decrypt
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
//You can use ENCRYPT_MODE or DECRYPT_MODE
cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(sessionKey, "AES"), new IvParameterSpec(iv));
byte[] ciphertext = cipher.doFinal(plaintext);

就是这样,用于加密/解密。如果要处理大量数据,则最好读取16字节倍数的块,然后调用update而不是doFinal(您只需在最后一个块上调用doFinal)。



 类似资料:
  • 问题内容: 当我尝试使用Java 7连接URL(支持TLS 1.2且以前与Java 7兼容的供应商URL之一)时,发现以下异常: 这样我就启用了,并且 在那之后我也遇到了同样的问题。然后,我将Java版本升级到8,这样它就可以连接到URL而没有任何SSL问题。 如本博客所述,在Java 8中,默认设置为TLS 1.2,并且可以使用Java 7中的属性调整TLS 1.2 。在Java 7中,如果我根

  • 我想把我的C#(托管)解密方法转换成Android NDK, C/C(NO JAVA) 我看到有加密。在JAVA方面,但我想远离任何JNI,我还看到有mcrypt和crypt,但找不到适用于android的编译库。 这里有一个C#的例子,我想把它翻译成C/C 更新到目前为止,我发现最好的方法是使用openSSL AES,我已经下载了一个预编译的Android库,我只是在努力让它与一些已经发布的示例

  • 问题内容: 我正在用Java实现与第三方应用程序的通信。作为登录过程的一部分,第三方应用程序正在发送一个加密的字符串,我必须对其进行解码并发回。我已经花了将近2天的时间进行糊涂和阅读文章,但是我找不到实现此目的的正确方法。 我有一个测试用例,其中加密的字符串为“ c1W2YO1vYQzu6czteEidrG0U4g5gT4h57vAlP7tdjcY =“,使用密码“ GAT”解密的字符串必须返回“

  • 问题内容: 我知道dalvik vm中的“ java”在API和体系结构等方面与Java se有所不同。但是语法始终是相同的。(如果我错了,请纠正我) 现在即将发布Java 8中 对lambda表达式的支持,android java会遵循吗?google或aosp是否承诺使dalvik与Java se保持一致? 更新:现在和Android 4.4 Kit Kat(API 19)一样,已经正式支持J

  • 我可以在hive和impala中使用基于java的UDF,但是在子句中调用UDF时抛出错误 当在条款中引用时,UDF不能使用,但当它仅在后面引用impala 2.9.0-cdh5时,UDF可以正常工作。12.1 在hive工作正常,但在impala中不工作。 在impala中执行是可以的。UDF只能在impala中使用,不能在子句中使用 这里是错误 在子句中用impala引用UDF是可能的吗?

  • 我需要用'rijndael-128-cbc'算法解密php加密的数据。 现在我有一个将php代码转换为ruby代码的问题。ruby OpenSSL::Cipher不支持rijndael-128-cbc,所以我使用“aes-128-cbc”。我听说AES是基于Rijndael密码的,所以我想我可以用Rijndael-128-cbc将解密转换为AES-128-cbc。 它的产量是16 然而,在php中