草庐IT

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 - 如何在 Java 中更快地计算 sha256?

我发现在java中计算sha256很慢。例如,它比python慢。我编写了两个简单的基准测试来计算1GB零的sha256。在这两种情况下,结果相同且正确,但python时间为5653ms,java时间为8623ms(慢53%)。每次结果都相似,这对我来说是一个重要的区别。如何让java的计算速度更快?基准:Java:importjava.security.MessageDigest;importjava.security.NoSuchAlgorithmException;publicclassBenchmarkSha256{publicstaticvoidmain(String...a

java - TLS_RSA_WITH_3DES_EDE_CBC_SHA 是否等同于 SSL_RSA_WITH_3DES_EDE_CBC_SHA

我正在配置一个Java客户端,它的工作是与服务器建立TLS连接。我想用这3个密码配置我的客户端:TLS_RSA_WITH_RC4_128_SHATLS_RSA_WITH_3DES_EDE_CBC_SHATLS_RSA_WITH_RC4_128_MD5在Java支持的密码套件中,我发现了相同的密码,但开头是SSL而不是TLS。问题是,如果我配置我的客户端:SSL_RSA_WITH_RC4_128_SHASSL_RSA_WITH_3DES_EDE_CBC_SHASSL_RSA_WITH_RC4_128_MD5这两个列表是否完全相同并且将被服务器解释为相同的?我担心如果我用SSL_*密码配置

java - SecureRandom.getInstance ("SHA1PRNG", "SUN") 总是阻塞而 new SecureRandom() 不是?

我想咨询一些关于Java中SecureRandom的常见神话、安全与性能权衡的问题。在网上查了一段时间,整理了以下资料。我希望这里的人能帮助我确认我得到了什么,并希望对实际选择实现的内容有一些想法。基本上这里有一些关于SecureRandom的最受欢迎和最详尽的文章:正确使用Java的SecureRandom:https://www.synopsys.com/blogs/software-security/proper-use-of-javas-securerandom/使用Java的SecureRandom时的问题:https://www.synopsys.com/blogs/sof

SHA-512在Go中的实战应用: 性能优化和安全最佳实践

SHA-512在Go中的实战应用:性能优化和安全最佳实践简介深入理解SHA-512算法SHA-512的工作原理安全性分析SHA-512与SHA-256的比较结论实际案例分析数据完整性验证用户密码存储数字签名总结性能优化技巧1.利用并发处理2.避免不必要的内存分配3.适当的数据块大小总结与其他哈希算法的比较SHA-512vsSHA-256SHA-512vsMD5选择考虑总结安全最佳实践使用盐值增强密码哈希防止哈希泄漏定期更新哈希算法结合其他安全措施总结总结和未来展望本文重点回顾未来展望结语简介在当今数字化的世界中,数据安全已成为软件开发的核心议题之一。特别是在数据传输和存储过程中,保护数据不被未

java - Java 中的 crypt(3) $6$ 密码哈希算法(基于 SHA-512)?

我正在寻找一个Java函数来生成/验证以crypt(3)方式编码的密码散列,当它们存储在Linux“/etc/shadow”文件中时如果sha512在“/etc/pam.d/common-password”中激活。明文字符串“geheim”将转换为:"$6$WoC532HB$LagBJ00vAGNGu8p9oeYDOSNZo9vTNTzOgPA.K0bJoiXfbcpj3jBuTkNwdzCrSNadRi8LanH1tH6tGGPPp/Lp3."来自http://www.akkadia.org/drepper/SHA-crypt.txt我知道,与MD5一样,它不仅仅是一个像Digest

Java 9 弃用 SHA1 证书,还是其他问题?

[更新]Oracle刚刚修改了加密路线图(https://www.java.com/en/jre-jdk-cryptoroadmap.html),他们将不会弃用SHA-1进行代码签名:2017-03-14目标日期从2017-04-18更改为2017-07-18。所有SHA-1使用的范围缩小:只有TLS会受到影响,*此时代码签名不会受到影响*。这不会以任何方式影响我在下面收到的很好的答案,因为毫无疑问,它将在未来适用。--原帖:尝试在JRE9ea153上运行我们的Webstart部署的Java应用程序,我得到以下弹出窗口:进一步查看详细信息,我看到证书在一段时间内仍然有效:,因此,我想知

java - MessageDigest SHA-512 不同于 openssl

我不知道我做错了什么。我有以下代码:byte[]digest=newbyte[0];MessageDigestmd=null;try{md=MessageDigest.getInstance("SHA-512");}catch(NoSuchAlgorithmExceptione){returndigest;}digest=md.digest(myString.getBytes());在NetBeans调试器中查看digestbyte[]的十六进制值,它显示的内容与以下输出不同:echo"myString"|openssldgst-sha512我猜这是一个字符编码问题,但JVM和open

java - 为什么我的 Java 和命令行 SHA256 输出不同?

我在命令行和Android上的Java中对字符串进行哈希处理得到的输出不同。我确定我做错了什么,但我看不出是什么。命令行:kevin@aphrodite:~$echoderp|sha256sumee673d13de31533a375b41d9e57731d9bb4dbddbd6c1d2364f15be40fd783346-Java:finalStringplaintext="derp";finalMessageDigestmd;try{md=MessageDigest.getInstance("SHA-256");}catch(NoSuchAlgorithmExceptione){/*

java - 如何获取 Maven 项目 list 中 Implementation-Version 字段中的 git SHA1 值?

我们使用git和maven以及logback。这意味着日志中的堆栈跟踪显示包含堆栈跟踪中每一行的jar的实现版本(有关示例,请参见http://logback.qos.ch/reasonsToSwitch.html#packagingData)。因此,如果我们可以将当前构建的SHA1打包到正在构建的Artifact的list中的那个字段中,就可以很容易地从git中找到确切的源,该源生成了包含源中单独一行的Artifact。根据http://maven.apache.org/shared/maven-archiver/examples/manifestEntries.html这样做的方法