草庐IT

Cryptography

全部标签

java - JDK 中可用的 MessageDigest 的完整列表

我为此四处搜索,但似乎无法得到直接的答案。在Java中,可用的MessageDigests由您配置/安装的安全提供程序决定。但是假设只是正常的JDK8安装(在我的例子中是1.8.0_11),可用的哈希算法列表是什么?从文档中的示例来看,很明显MD5、SHA1和SHA-256是可用的,但我似乎无法获得完整的权威列表。此列表是否存在,或者我如何找到适合我的特定安装的列表? 最佳答案 除了JB的回答之外,我还想提出一个查询运行时可用算法的解决方案。这种方法当然很容易转换为Cipher、SecureRandom、Mac、KeyAgreeme

java - 使用 Java 中的 Bouncy CaSTLe 自签名 X509 证书

我需要使用Java中的BouncyCaSTLe创建一个自签名X509证书,但我尝试包含的每个类都已弃用。我该如何解决这个问题?还有其他类(class)要包括吗?谢谢 最佳答案 使用最新版本的BouncycaSTLe-1.551.66更新@Bewusstsein的回答。截至此答案(5/11/2017),最新版本已弃用bouncycaSTLe类。如果您使用的是1.55或更高版本:publicstaticCertificateselfSign(KeyPairkeyPair,StringsubjectDN)throwsOperatorCre

java - 使用带有 RSA-SHA1 的 Twitter joauth 验证 OAuth1a 签名请求?

我有一个用例来验证OAuth1请求,该请求使用RSA私钥签名并在服务器端使用RSA公钥验证。我从Twitter找到了这个库,它可以帮助我们验证/验证Oauth签名的请求。https://github.com/twitter/joauth我想利用这个库来验证来自Jersey或SpringMVC操作方法的请求。来自客户端的请求将使用私钥签名。最后,我将使用客户端的公钥来验证请求。这意味着RSA-SHA1算法。Twitterjoauth似乎很有用,但我缺少将HttpServletRequest转换为OAuthRequest的代码库自述文件建议将此作为工具,但我找不到执行javax.servl

javascript - Java 和 Javascript 之间的加密和解密将不起作用

编辑1在decryptFile方法中,解密部分不会输出任何东西..letdecrypted=CryptoJS.AES.decrypt(e.target.result,CryptoJS.enc.Utf8.parse(key),{iv:CryptoJS.enc.Utf8.parse(iv),mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.Pkcs7});编辑2link评论部分给出的部分解决了问题。它确实跨平台加密和解密,但由于PBKDF2和SHA256哈希,它相当慢。我找不到只使用AES部分而不使用PKBDF2部分的方法。原文我对Java和Javas

java - 可以使用 RSA 加密的数据量有多少限制?

通常建议使用RSA加密对称key,然后使用对称key加密“有效负载”。可以使用RSA加密的数据量的实际(或理论上)限制是多少(我使用的是2048位RSAkey大小)。特别是,我想知道用(不同的)RSA公钥加密RSA公钥(256字节)是否安全?我在Java中使用BouncyCaSTLe加密库。 最佳答案 对于n位RSAkey,直接加密(使用PKCS#1“旧式”填充)适用于任意二进制消息,最多floor(n/8)-11字节。换句话说,对于1024位RSAkey(128字节),最多117字节。使用OAEP(PKCS#1“新式”填充),这会

java - 分解 RSA/ECB/OAEPWithSHA-256AndMGF1Padding

Java有一个名为RSA/ECB/OAEPWithSHA-256AndMGF1Padding的模式。这到底是什么意思?RFC3447,公钥加密标准(PKCS)#1:RSA加密规范版本2.1,7.1.2解密操作部分说Hash和MGF都是RSAES-OAEP的选项-解密。MGF是它自己的函数,在B.2.1节MGF1中定义,它也有自己的哈希“选项”。也许RSAES-OAEP-DECRYPT和MGF1中的哈希“选项”应该是相同的,或者它们可能不是,我不清楚。如果是,那么我想当您拥有RSA/ECB/OAEPWITHSHA-256ANDMGF1PADDING时,这意味着sha256应该用于两者。但

java - 如何制作一个简单的公钥密码算法?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。这个问题似乎与helpcenter中定义的范围内的编程无关。.关闭9年前。Improvethisquestion我想做一个简单的公钥(非对称)加密。它没有安全性,我只想了解它们背​​后的概念。例如,我知道可以使用XOR生成简单的对称密码。我在stackexchange上的一个线程中看到您需要使用陷门函数,但我找不到太多关于它们的信息。我想说,取一组字节,并能够以某种方式拆分它们以获得公钥/私钥。我得到了共享secret的想法。比如说,我生成了256的随机数(根本不是随机的:P),我将它分成200和56

java - 用 Java 实现 Diffie-Hellman key 交换

我正在尝试用Java实现Diffie-Hellmankey交换,但我很难理解规范:CompletetheDiffie-HellmankeyexchangeprocessasalocalmechanismaccordingtoJWA(RFC7518)inDirectKeyAgreementmodeusingcurveP-256,dTandQCtoproduceapairofCEKs(oneforeachdirection)whichareidentifiedbyTransactionID.Theparametervaluessupportedinthisversionofthespeci

java - badPaddingException 在 doFinal 的某些调用上。不是全部。相同的输入

我使用javax.crypto.cipher来加密和解密一些数据。它运作良好。但有时,解密失败并出现badPaddingException。如果我将成功的调用与失败的调用进行比较,则提供给密码的输入是相同的,并且密码的初始化方式相同。我如何实例化我的密码dcipher=Cipher.getInstance("PBEWithMD5AndDES");KeySpeckeySpec=newPBEKeySpec(passPhrase.toCharArray(),salt,iterationCount);SecretKeykey=SecretKeyFactory.getInstance("PBEW

java - 在 Java 中使用 PBKDF2 进行密码验证

我正在用Java进行基于密码的文件加密;我使用AES作为底层加密算法,并使用PBKDF2WithHmacSHA1使用以下代码(我从该网站上另一位慷慨的海报获得)从盐和密码组合中派生key。SecretKeyFactoryf=SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");KeySpecks=newPBEKeySpec(password,salt,1024,128);SecretKeys=f.generateSecret(ks);Keyk=newSecretKeySpec(s.getEncoded(),"AES");我分享盐,用户在每