Tag: 加密

CryptoJS AES加密和Java AES解密

我只是问这个,因为我已经阅读了很多关于加密AES加密的post2天了,就在我认为我得到它的时候,我意识到我根本没有得到它。 这篇文章是我最接近我的问题,我有完全相同的问题,但没有答案: CryptoJS AES加密和JAVA AES解密值不匹配 我试过很多方面,但我没有把它做对。 首先 我正在获取已经加密的字符串(我只有代码才能看到它们是如何做的),因此修改加密方式不是一种选择。 这就是为什么所有类似的问题对我都没有用。 第二 我有权访问密钥,我可以修改它(所以如果需要,调整长度是一个选项)。 加密是在CryptoJS上完成的,它们将加密的字符串作为GET参数发送。 GetParamsForAppUrl.prototype.generateUrlParams = function() { const self = this; return new Promise((resolve, reject) => { const currentDateInMilliseconds = new Date().getTime(); const secret = tokenSecret.secret; var encrypted = CryptoJS.AES.encrypt(self.authorization, secret); encrypted = encrypted.toString(); self.urlParams = { token: encrypted, time: currentDateInMilliseconds }; resolve(); }); }; 我可以使用CryptoJS在javascript上轻松解密这个: […]

用于加密/解密的Java SimpleCrypto类在Coldfusion 9和Java(Android)中产生不同的结果

我试图使用广泛使用的SimpleCrypto java类来加密Java(Android)中的字符串并解密ColdFusion 9中的字符串(反之亦然)。 我已将完全相同的SimpleCrypto类导入ColdFusion并将其命名为: sc = createObject(“java”, “SimpleCrypto”).init(); encrypted = sc.encrypt(myKey, “john”); 当用“apple”键加密字符串“john”时,它在CF中输出:9E90A36325AE4F4F7352D6469A7068A2 当我在Android中使用EXACT SAME类时: String key = “apple”; try { sEncrypted = SimpleCrypto.encrypt(key, “john”); Log.d(TAG, sEncrypted); } catch (Exception e) { e.printStackTrace(); } 日志输出:CBE2ADDBA9882F545DFEC1700E7CD518 不用说,我正在疯狂,因为这些结果是不同的。 有谁知道为什么在ColdFusion和Java中使用相同的确切代码会产生不同的结果? 任何帮助将不胜感激。 以下是SimpleCrypto.java的源代码: import java.security.SecureRandom; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; /** * Usage: * * String […]

如何列出可用的密码算法?

我正在使用Cipher.getInstance(String algorithm)获得Cipher实现。 我的印象是,我可能传递的可用算法名称因我的类路径中存在的库而异。 我想编写一个简单的程序,我可以使用不同的类路径运行,列出可用的Cipher算法名称。 获取此列表需要调用哪种方法?

获取javax.crypto.IllegalBlockSizeException:使用填充密码解密时,输入长度必须是16的倍数?

使用tomcat,我有两个web应用程序,即app1和app2。 我将app1以加密forms(使用下面的代码)发送到app2。 然后在app2我解密了这个加密的url。 但是我在decryp方法的第50行遇到了exception。 “Getting javax.crypto.IllegalBlockSizeException: Input length must be multiple of 16 when decrypting with padded cipher” 虽然我尝试在app1解密(使用相同的代码)加密的URL时进行调试,但它工作正常。 但无法弄清楚在app2引起此exception的原因是什么? 这是代码 import java.security.Key; import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; public class AESEncryptionDecryptionTest { private static final String ALGORITHM = “AES”; private static final String myEncryptionKey = “ThisIsFoundation”; private static final String UNICODE_FORMAT = […]

在java中加密和解密String

我是密码学的新手。 我希望学习如何加密和解密文件中的文本……当我在网上查阅相关文章时。 我怀疑在同一文本上多次加密时加密文本对于单个文本是否相同? 有人可以清楚我的怀疑吗?

自签名X509证书与Java中的Bouncy Castle

我需要在Java中创建一个带有Bouncy Castle的自签名X509证书,但我尝试包含的每个类都已弃用。 我怎么解决这个问题? 是否还有其他课程要包括在内? 谢谢

如何使用Java从CryptoJS解密加密的AES-256字符串?

我有来自CryptoJS的加密AES-256字符串和密码短语。 我需要用Java解密它,但无法弄清楚如何做到这一点。 您似乎需要IV,密钥和salt来解密,并且在CryptoJS主页中 ,加密数据已经包含所有这些,并且CryptoJS可以以某种方式将它们从加密输入中解析出来。 谁知道怎么做? 我已经看到了很多关于CryptoJS的例子 – Java加密/解密,但大多数都使用硬编码的IV /密钥,或者只是将密码/密钥从cryptoJS端发送到Java端。 我所拥有的只是一个密码,就像这个网站所做的那样!

javax.crypto.IllegalBlockSizeException:使用填充密码解密时,输入长度必须是16的倍数

我在java类中遇到解密错误: javax.crypto.IllegalBlockSizeException : Input length must be multiple of 16 when decrypting with padded cipher. 我该怎么做才能解决这个问题? 更新: 我忘了提到它工作一次,第二次我试图再次执行它时抛出上述错误。 package com.tb.module.service; import java.security.Key; import java.security.spec.InvalidKeySpecException; import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; import sun.misc.*; /** * This class is used for encrypt and decrypt the password field. * */ public class PswdEnc { private static final String ALGO = […]

java.io.IOException:无效的密钥库格式

有谁知道如何解决这个问题? 我尝试了很多东西,但没有一个能奏效。 当我点击更多细节时,我得到了这个: at sun.security.provider.JavaKeyStore.engineLoad(Unknown Source) atsun.security.provider.JavaKeyStore$JKS.engineLoad(Unknown Source) at java.security.KeyStore.load(Unknown Source) at com.sun.deploy.security.RootCertStore$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at com.sun.deploy.security.RootCertStore.loadCertStore(Unknown Source) at com.sun.deploy.security.RootCertStore.load(Unknown Source) at com.sun.deploy.security.RootCertStore.load(Unknown Source) at com.sun.deploy.security.ImmutableCertStore.load(Unknown Source) at com.sun.deploy.security.TrustDecider.isAllPermissionGranted(Unknown Source) at com.sun.deploy.security.TrustDecider.isAllPermissionGranted(Unknown Source) at sun.plugin.security.PluginClassLoader.getPermissions(Unknown Source) at java.security.SecureClassLoader.getProtectionDomain(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$000(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native […]

使用RSA在java中加密和解密大字符串

我正在尝试实施PKI。 我想在java中使用RSA加密大字符串,而不使用充气城堡。 我得到的问题是数据不能超过117个字节。 我试图找到我失败的解决方案。 我是这个加密的新手。 请以大字符串为例帮我解释一下。