以下代码列出了Java SE 8支持的密码套件:
import java.io.IOException;
import java.net.UnknownHostException;
import java.util.Arrays;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLSocketFactory;
public class ListCiphers {
public static void main(String[] args) throws UnknownHostException, IOException
{
SSLSocketFactory factory = HttpsURLConnection.getDefaultSSLSocketFactory();
String[] cipherSuites = factory.getSupportedCipherSuites();
System.out.println(Arrays.toString(cipherSuites));
} //end main
}
我想使SSL客户端配置有一些特定的密码套件列表。我要使用的密码套件是标准化的,但Jva SE 8不支持。例如,firefox中列出了此密码:
ECDHE_ECDSA_WITH_AES_256_SHA
请以任何允许我在SSL客户端中编辑密码套件列表的方式为我提供帮助。有弹性的城堡在这方面有帮助吗?怎么样?请给我清晰的步骤。另外,如果您知道我想要什么,可以通过使用另一种语言(例如python)来实现,请也帮助我。
如何使用Bouncy Castle编辑Java中的密码套件列表
查看启用SSL套接字的密码套件吗?并使用SSLSocketFactoryEx。它是Java的直接替代品SSLSocketFactory
如果您不想使用SSLSocketFactoryEx
,请撕掉代码以找到密码套件的交集。
它同时控制协议和密码套件。没有意外的惊喜,例如从取回SSLv3套接字SSLSocketFactory.getInstance("TLS");
。
没有什么可配置的,因此用户无法用脚射击自己。还可以使用TLS 1.3
问题内容: 我对 密码学还很陌生 ,我正在使用它来 加密 密码并将其存储在数据库中。对于 加密, 我正在使用算法,并且希望对密码加盐以防止再次发生字典攻击。 任何帮助,将不胜感激。 问题答案: 我建议为此使用基于密码的密钥派生函数,而不是基本的哈希函数。像这样:
我对密码学相当陌生,我正在使用加密密码并将其存储在数据库中。对于加密,我使用算法,并且我想对密码加盐,以防止它对字典攻击。 如有任何帮助,我们将不胜感激。
问题内容: 我在端口443上创建了一个套接字,如下行: 然后,我想在此套接字中查看启用的密码套件,我使用了: 然后,我只选择一个我希望我的应用程序在与远程服务器建立握手时使用的密码套件。我做了以下事情: 然后我进行了握手,并检查了会话密码套件: 但是我发现握手后在上一个打印输出语句中打印的密码的名称(据我了解,这是会话中实际使用的密码)不是我之前使用的密码 为什么我仍然看不到我选择的密码套件是二手
我将HiveMQ服务器配置为识别TLS,并创建了一个TLS通信。我想打印出正在使用的密码套件。我使用了getSslConfig(),但最后得到的输出是:
问题内容: 我最近一直在将SSL套接字用于消息传递系统。 我终于开始使用CA颁发的证书。我将其导入到密钥库中,设置了密钥库属性,并启动了客户端,但是当我尝试发送数据时,我一直收到握手异常。 我启用了调试模式,发现这是由于造成的。有什么想法吗? 如果有帮助,它还说它忽略了TLSV1和TLSV1.1中的大约10个密码套件。 我还安装了无限强度加密策略。 客户代码 服务器代码 编辑: 我刚刚添加了密码,
问题内容: 我需要对密码进行哈希处理以存储在数据库中。如何用Java做到这一点? 我希望使用纯文本密码,添加随机盐,然后将盐和哈希密码存储在数据库中。 然后,当用户想要登录时,我可以使用其提交的密码,从其帐户信息中添加随机盐,对其进行哈希处理,然后查看其是否等同于其帐户信息所存储的哈希密码。 问题答案: 实际上,你可以使用Java运行时内置的工具来执行此操作。Java 6中的SunJCE支持PBK