Java密码套件

Java密码套件,java,ssl,Java,Ssl,我正在尝试使用SSLSocketFactory.getSupportedCipherSuite()计算密码套件返回的顺序-Java 1.6和Java 1.7之间似乎有所不同 我认为这很容易确定,但遇到了一些问题。不过,首先,我使用的代码如下: SSLContext context = SSLContext.getDefault(); SSLSocketFactory sf = context.getSocketFactory(); String[] cipherSuites = sf.getSu

我正在尝试使用SSLSocketFactory.getSupportedCipherSuite()计算密码套件返回的顺序-Java 1.6和Java 1.7之间似乎有所不同

我认为这很容易确定,但遇到了一些问题。不过,首先,我使用的代码如下:

SSLContext context = SSLContext.getDefault();
SSLSocketFactory sf = context.getSocketFactory();
String[] cipherSuites = sf.getSupportedCipherSuites();
非常直截了当(如果我做了傻事,请纠正我)。 因此,我认为(使用eclipse)我能够进入getSupportedCipherSuites()方法,但似乎源代码并没有做到这一点(这是有原因的吗?)。我在jsse.jar中找到了这个类,并使用。 但是,这给了我一个抽象类,我还没有看到抽象类的具体实现(我发现可以使用属性“ssl.SocketFactory.provider”设置该类,但java.security中没有指定该属性)。 我还无法确定如何使用“javax.net.debug”属性打开日志记录(这将消失在本机方法中)

有人能指出我错在哪里吗?

支持(和启用)的密码套件列表可在SunJSSE提供程序文档中找到:for和for。列表顺序确实不同


我必须承认,我从未真正注意过受支持的密码套件列表中的顺序。重要的是“启用”密码套件列表

如果您对代码本身感兴趣,应该在和中找到它。请注意,这些类是Sun JSSE实现的一部分,而不是公共Java API的一部分


关于调试,您可以在中找到所需的参数。

我想您是新手,但是
GetSupportedCipherSuite
标记太具体了。(目前有一个关于合并/重命名一些SSL相关标记的问题。)谢谢Bruno。我只是尝试使用我在搜索中使用过的关键字标签,我想这是很幼稚的。只是看了一下讨论——其中一个主题一开始似乎很简单,但后来变成了更多的东西!:-)你不需要进入方法来查看它返回的内容。密码套件在va 1.6和1.7,很容易看出每个版本的方法总是返回相同的东西。另一个问题是你为什么关心?密码套件的顺序不影响任何东西。特别是,它不表示偏好顺序。感谢Bruno。这让我找到了一个起点,非常感谢-非常感谢ed.那么从您所说的来看,IBM JDK?的列表顺序可能不同,OpenJDK实现可能不同于Sun/Oracle JDK?是的,顺序可能不同于另一个JRE实现(例如IBM)。OpenJDK JRE应该与Sun/Oracle JRE更接近,因为它们的代码基础或多或少相同(根据次要的发行号,可能会有细微的差异)。看起来IBM JRE中的顺序非常相似,但似乎(在Oracle JRE 6中不可用)。“重要的是启用了*的“密码套件列表”-如果您的目的是(例如)填充一组GUI复选框,以便用户可以选择要启用的密码套件,则不会这样做。@slim,很好的一点,我记不起当时的想法,但我怀疑我指的是列表的顺序。