Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取字符串';s Sql Server nvarchar(255)字节(Java)_Java_Sql Server 2008_Types_Java 8 - Fatal编程技术网

获取字符串';s Sql Server nvarchar(255)字节(Java)

获取字符串';s Sql Server nvarchar(255)字节(Java),java,sql-server-2008,types,java-8,Java,Sql Server 2008,Types,Java 8,我试图在Java中复制一个遗留的Sql Server哈希算法。问题是,该算法使用HashBytes(MD5),它根据我正在散列的字符串的类型给出不同的结果 所以至少,我需要知道如何在java中以nvarchar(255)的形式获取字符串的字节 我意识到我可以在Java中作为一个sql选择来做这件事,但我正在寻找一种不这样做的方法 byte[] b = str.getBytes("UTF-16LE"); java.security.MessageDigest md = java.s

我试图在Java中复制一个遗留的Sql Server哈希算法。问题是,该算法使用HashBytes(MD5),它根据我正在散列的字符串的类型给出不同的结果

所以至少,我需要知道如何在java中以nvarchar(255)的形式获取字符串的字节

我意识到我可以在Java中作为一个sql选择来做这件事,但我正在寻找一种不这样做的方法

    byte[] b = str.getBytes("UTF-16LE");
    java.security.MessageDigest md = java.security.MessageDigest.getInstance("MD5");
    return javax.xml.bind.DatatypeConverter.printHexBinary(md.digest(b));
这在某些
nvarchar(255)
上提供了与sql server
HASHBYTES('MD5',…)
相同的哈希值。关键似乎是
UTF-16LE