我正在用SecKeyEncryptedData在ojb-c中加密,并试图用javax.cipher在Java中解密,但遇到了一个问题。
我最近开始做长块,需要使用对称加密,使用AES密钥加密,使用非对称密钥对加密。我解码有问题。
obj-c:seckeyalgorithmrsaencryptionoaepsha512aesgcm;nsdata*密文=nil;cipherText=(NSDATA*)CFBridgingRelease(//ARC拥有所有权
java:
SecKeyCreateEncryptedData(self.pubkey,algorithm,(__Bridge CFDataRef)data,&error));try{cipher=cipher.getinstance(“rsa/ecb/pkcs1padding”);cipher.init(cipher.decrypt_mode,priv);byte[]dog=decoder.decode(encString);dec=cipher.dofinal(dog);res=new String(dec);
}//处理错误
解码显然失败了。
所以我的问题分为两个部分。
是否有一种密码类型可以进行所需的解码
您可以阅读密码文档。我相信您正在寻找RSA/ECB/OAEPWITHSHA-256andMGF1PADDING
我看到这个名称与Obj-C名称不完全匹配,但这是一个常见的标准,所以值得一试
因为我需要发送更长的块,并且正在尝试切换到kSecKeyAlgorithmRSAEncryptionOAEPSHA512AESGCM
您可以尝试搜索“混合加密”。与对称密码相比,非对称密码的速度非常慢,并且只能加密有限数量的数据。
无论如何,某些实现可能会加密较长的数据(对于每256位输入提供2048 o 4096位输出),Java将简单地抱怨并停止
编辑:当使用OAEP也是RSA/ECB/OAEPWITHA-256和MGF1PADDING时,这个asnwer可能很有用,但是使用SHA-256使用MGF1?
问题内容: 我尝试解密最初使用Java中的Objective-C加密的数据。 还有其他问题要提及,但是它们确实很混乱,许多问题还没有解决,因此我将发表自己的问题。 这是加密数据的代码: 我执行此功能,并使用以下代码将结果数据写入光盘: 在Java中,我使用以下代码来尝试实现相同的行为: 如果现在尝试解密通过Objective-C加密的文件,则会收到错误的填充异常。如果我打开两个带有加密内容的文件,
我试图解密C#加密数据在Java没有成功。我用的是128位密钥 这是java代码: 你知道会出什么问题吗? 谢谢 使现代化 对不起,我太笨了,我忘了写实际的错误消息。这是: 线程“main”javax中出现异常。加密。BadPaddingException:组织中的填充块已损坏。弹跳船舱。jcajce。供应商。对称的。util。基本分组密码。javax上的engineDoFinal(未知源代码)。
问题内容: 我正在连接一个旧的Java应用程序(无法更改该应用程序),该应用程序正在使用AES加密数据。这是原始Java代码如何实例化AES密码: 我是C / C ++开发人员,而不是Java,但是从我可以看出来的传统Java代码中,既没有指定模式,也没有指定初始化向量。有人偶然知道默认情况下将使用什么Java,因为未指定它? 我们需要新的C / C ++应用程序来解密Java加密的数据。但是我不
我用RSA加密来加密C#中的一些数据。现在我想用Java解密加密的数据。但是我遇到了一些问题。 主要问题可能是将加密消息从c#获取到java。在c#中,我们有无符号字节,字节序是不同的 因此,为了进行测试,我将c#中加密数据的数组转换为数组并获得它的字符串表示形式。然后我将字节数组的字符串表示形式复制到我的java代码中并将其转换回“字节”数组。之后,我反转数组以匹配java的endianess。
1.我有java函数,它加密xml文件并返回加密的字符串。 2.我有c#函数,它可以解密由java函数加密的消息。 Java加密功能运行良好。但问题是C函数, 当我解密时,会得到下面的错误消息 我使用下面的参考搜索解决方案 Java中的AES加密和C#中的解密 C#/Java|AES256加密/解密 C#和Java中的加密/解密 但我仍然面临同样的错误。谁能给我提个建议吗。 我只是改变我的C#加密
问题内容: 我正在使用ExtJS框架。我在 JavaScript中 有MD5函数来加密某些JSON。我的后端使用Java,所以我想知道如何使用 Java 解密MD5 Javascript加密? 这是我正在使用的MD5函数的JS等效项: 问题答案: MD5是 哈希 (即单向转换),因此您无法对其进行解密。您可以将已知哈希与从明文计算出的哈希进行比较,以验证输入的有效性。Java已经为此内置了库。我在