我不明白为什么如java.security.MessageDigest.digest()被声明为返回方法byte[]在Java中返回一个ByteArray在科特林虽然科特林通常似乎需要byte[]的Array<Byte>.
例如,以下不起作用:
fun main(args : Array<String>) {
val md = java.security.MessageDigest.getInstance("SHA")
if (md == null) throw NullPointerException()
val result : Array<Byte>? = md.digest()
}
Run Code Online (Sandbox Code Playgroud)
类型不匹配:推断类型ByteArray?,但Array<Byte>?预期
我正在使用像这样的Axis 1.4 webservice:
FooServiceLocator fooLocator = new FooServiceLocator();
fooLocator.getEngine().setOption("sendMultiRefs", false);
Foo foo = fooLocator.getFooService(new URL(soapServiceUrl));
Run Code Online (Sandbox Code Playgroud)
如何为连接建立和打开的连接设置超时?(与org.apache.commons.net.SocketClient setTimeout()和相似setSoTimeout())?
我发现了一个提示,建议设置这样的超时:
((Stub) sPcspService).setTimeout(soapTimeoutSecs * 1000);
Run Code Online (Sandbox Code Playgroud)
但是显式演员看起来更像是黑客,而不是官方的API使用.
点击源代码我找到了引用
DefaultCommonsHTTPClientProperties.CONNECTION_DEFAULT_SO_TIMEOUT_KEY
但我不知道我是否使用了这个Commons HTTP Client或另一个,也不知道如何应用这个选项.
我正在寻找一个Java函数来生成/验证密码哈希,crypt(3)如果sha512在"/etc/pam.d/common-password"中激活它们,就会将它们存储在Linux"/ etc/shadow"文件中. .
明文字符串"geheim"将转换为:
"$6$WoC532HB$LagBJ00vAGNGu8p9oeYDOSNZo9vTNTzOgPA.K0bJoiXfbcpj3jBuTkNwdzCrSNadRi8LanH1tH6tGGPPp/Lp3."
Run Code Online (Sandbox Code Playgroud)
来自http://www.akkadia.org/drepper/SHA-crypt.txt我明白,就像MD5一样,它不仅仅是一个类似SHA的哈希,DigestUtils或者是Java MessageDigest类产生的,而是一种更有魔力的算法.