jjzjj

Cryptography

全部标签

java - 解密加密文件内容?

我在使用RSA公钥解密解密文件时遇到问题。我的流程是接收xml文件,加密内容,写回同一个文件。另一个函数解密内容。我的源代码是:publicvoiddecryptFile(StringfileName,PrivateKeyprivateKey)throwsException{Ciphercipher=Cipher.getInstance("RSA/ECB/PKCS1Padding");cipher.init(Cipher.DECRYPT_MODE,privateKey);FileInputStreamfis=newFileInputStream(fileName);Filefile=n

java - 获取证书链

我在Java中使用X509证书。给定一个证书,是否可以在到达根证书之前找到签名层次结构中的所有其他证书?我有一个证书文件(扩展名为.cer),我想提取父签名证书。我想继续查找该证书的父级,直到获得最终的自签名根证书。我检查了java.security.cert中的X509Certificate证书API和相关API,但找不到任何有用的东西。 最佳答案 这并不难-假设您以某种方式/带外获得了一个或多个钥匙串(keychain)中的所有中间证书和根证书。看看http://codeautomate.org/blog/2012/02/cer

java - PKCS#11 实例化问题

我正在尝试使用智能卡和PKCS#11对pdf文件进行签名。我链接了正确的.dll并正在动态创建配置文件,但我遇到了配置问题。Stringconfig="name=zz\n"+"library="+DLL+"\n"+"slotListIndex="+getSlotsWithTokens(DLL)[0];ByteArrayInputStreampot=newByteArrayInputStream(config.getBytes());ProviderproviderPKCS11=newSunPKCS11(pot);我收到以下错误:Exceptioninthread"main"java.s

java - Java Card 中的 ALG_RSA_NOPAD

为了在JavaCard中高效地计算一个正方形,我想使用指数等于2且模数大于预期结果的算法ALG_RSA_NOPAD(因此模块化缩减没有效果)。但我无法使用算法ALG_RSA_NOPAD。事实上,当我调用方法doFinal()时,我得到了一个CryptoException,它是ILLEGAL_VALUE。在JavaCard2.2.2规范中,它说:CryptoException.ILLEGAL_USEifoneofthefollowingconditionsismet:•ThisCipheralgorithmdoesnotpadthemessageandthemessageisnotblo

java - HMC SHA1 哈希 - Java 生成与 C# 不同的哈希输出

这是this问题的跟进,但我正在尝试将C#代码移植到Java,而不是将Ruby代码移植到C#,就像相关问题中的情况一样。我正在尝试验证从Recurly.jsapi返回的加密signature是否有效。不幸的是,Recurly没有Java库来协助验证,所以我必须自己实现签名验证。根据上述相关问题(this),以下C#代码可以生成验证从Recurly返回的签名所需的哈希值:varprivateKey=Configuration.RecurlySection.Current.PrivateKey;varhashedKey=SHA1.Create().ComputeHash(Encoding.

java - 请帮助-卡住无效 key 异常

我收到java.security.InvalidKeyException:Illegalkeysizeordefaultparameters,我已经完成了所有必需的步骤,安装了JavaCryptographyExtension(JCE)UnlimitedStrengthJurisdictionPolicyFiles。我也经历过这些话题Java.security.InvalidKeyException:IllegalkeysizeordefaultparameterserrorJavaSecurity:Illegalkeysizeordefaultparameters?但我仍然卡住了并收

java - 使用 Java 使用 BouncyCaSTLe 生成 X509Certificate

这就是我现在用来生成数字证书的内容。现在我可以生成一个数字证书,其中的密码对私钥进行保护。publicstaticvoidmain(String[]args)throwsException{Security.addProvider(newBouncyCastleProvider());testKeyStore();}publicstaticvoidtestKeyStore()throwsException{try{StringstoreName="d://suresh_test.cer";java.security.KeyPairGeneratorkeyPairGenerator=Ke

java - RSA/ECB/OAEPWithSHA-256AndMGF1Padding 但 MGF1 使用 SHA-256?

我在Oracle的Java标准加密提供程序中找到了困难的方法Ciphercipher=Cipher.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding");使用通过SHA-1实例化的MFG1;SHA-256仅用于散列标签(实际上是空的)。我发现在MFG1中实际使用SHA-256的唯一解决方案(在answer和comment的帮助下)是使用Cipher.init的替代形式:cipher.init(Cipher.DECRYPT_MODE,privKey,newOAEPParameterSpec("SHA-256","MGF1",MGF1Pa

java - KeyGenerator 线程安全吗?

我想知道我是否可以实例化javax.crypto.KeyGenerator仅一次,然后在多线程环境中使用此实例。它的JavaDoc文档没有说明它的线程安全性。或者使用ThreadLocal会更好方法?更新:一个相关的问题是IsSecureRandomthreadsafe?虽然JavaDoc没有声明该类是线程安全的,但社区仍然认为它是线程安全的决定从实践的角度来看非常重要。我想知道KeyProvider的情况。 最佳答案 除非文档明确保证线程安全,否则将任何事物视为非线程安全。你是对的,这种哲学对线程安全文档的稀缺性几乎没有帮助...

java - 结合验证 PKCS#7 签名所需的所有任务

我已经为这个问题苦苦思索了大约20个小时,我可能遗漏了一些简单的东西。但是,我已经到了我认为需要帮助的地步。我已经阅读了数十种关于如何解决问题不同部分的解释,但我无法弄清楚如何将它们组合在一起。我有一个DER编码的分离PKCS#7数字签名。签名符合RFC3852(加密消息语法)。对于我的项目,我需要逐步完成验证签名所需的每个步骤,并能够判断验证失败的步骤。我在Java中使用BouncyCaSTLe。据我了解,验证数字签名需要六个基本步骤验证根证书是受信任的证书验证从根证书到签名证书的证书链验证签名者的姓名是否符合您的预期验证证书没有过期验证证书没有出现在CRL上(为简单起见,假设CRL