我正在尝试在客户站点使用第 3 方身份验证 Web 服务。 Web 服务是用 .Net 编写的,并接受 SecureString 作为密码类型。
AuthResult Login(string username, SecureString passkey)
我的应用程序是用 Java 编写的,Java 中没有我可以使用的 SecureString 兼容类型:( 当我生成 Axis 代理时,它会生成一个没有 SecureString 成员的 stub ,因此我无法制作对服务的身份验证调用。
public class SecureString implements java.io.Serializable {
public SecureString() {
...
}
}
我正在尝试 http://sanguinecomputing.com/a-secure-string-implementation-for-long-term-storage-of-sensitive-data-in-java/但我不是很有希望
谁能帮我解决这个互操作性问题?我正在寻找一种将 secureString 类型的参数从 Java 应用程序代码发送到 .Net 服务的方法。
最佳答案
没错。 SecureString 不是可序列化类型。它永远不可能跨机器,因为 SecureString 依赖于 DPAPI,它本身依赖于本地机器属性来构建它的加密 key /vector 。
API 使用 SecureString 类型参数发布这一事实表明其设计存在重大缺陷。没有远程客户端可能会提交该参数。
关于java - Java 中的 .Net SecureString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22645382/