程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在Android和Java中加密/解密字符串不同的值大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_696_0@如何解决在Android和Java中加密/解密字符串不同的值? 开发过程中遇到在Android和Java中加密/解密字符串不同的值的问题如何解决?下面主要结合日常开发的经验,给出你关于在Android和Java中加密/解密字符串不同的值的解决方法建议,希望对你解决在Android和Java中加密/解密字符串不同的值有所启发或帮助;

这只是我的猜测,但我认为原因是您的关键推导。我不是真正的Java开发人员,因此我可能无法正确理解代码。

加密和解密时,此代码始终调用getRawKey()。getRawKey()看起来像需要一个称为种子或您的共享机密的东西,并用它来计算新的随机密钥来进行实际的加密/解密。

SecureRandom sr = SecureRandom.geTinstance("SHA1PRNG");
    sr.setSeed(seed);
    kgen.init(128, sr); // 192 and 256 bits may not be available
    SecretKey skey = kgen.generateKey();

根据在这里找到的Java文档,setSeed()“对这个随机对象进行加密。 现有的种子。”

我的猜测是,RNG的初始状态在每个系统/平台上都不同,因此可以为您提供不同的结果。您应该将密钥派生修正为更标准,更一致的内容,或者使用已经建立的加密系统,例如Bouncy Castle库中的PGP。

@H_696_0@解决方法

我正在使用此代码在Java和Android中加密和解密某些字符串,并且在每个系统中,我得到一个不同的值。

我使用的代码来自http://www.androidsnippets.com/encryptdecrypt-
Strings(我不会粘贴它,因为它很大)。

例如,在Android中用于加密“ aa”的代码如下:1C6BD31C57F42ACFD0EDD2DD5B7A92CA

和与Java中的种子具有相同键的完全相同的String,我得到:61FAD1203B7AC92AD9345771AA273DA5

任何想法?

提前致谢!

大佬总结

以上是大佬教程为你收集整理的在Android和Java中加密/解密字符串不同的值全部内容,希望文章能够帮你解决在Android和Java中加密/解密字符串不同的值所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。