【发布时间】:2015-11-01 17:37:05
【问题描述】:
我需要将用 VisualBasic 编写的旧代码翻译成 Java。 VB代码:
Dim mySHA256 As Object
Dim asc As Object
Dim TextToHash() As Byte
Dim mybytes() As Byte
Dim objXML As Object
Dim objNode As Object
Dim strResult As String
Set asc = CreateObject("System.Text.UTF8Encoding")
Set mySHA256 = CreateObject("System.Security.Cryptography.SHA256Managed")
TextToHash = asc.GetBytes_4(sTextToHash)
mybytes = mySHA256.ComputeHash_2(TextToHash)
Set objXML = CreateObject("MSXML2.DOMDocument")
Set objNode = objXML.createElement("b64")
objNode.DataType = "bin.base64"
objNode.nodeTypedValue = arrData
strResult = objNode.Text
对我来说它看起来非常神奇。我需要在 Java 中具有相同的哈希 (strResult)。我的 Java 看起来像这样:
byte[] bytes = text.getBytes( "UTF-8" );
MessageDigest messageDigest = MessageDigest.getInstance( "SHA-256" );
byte[] hash = messageDigest.digest( bytes );
StringBuffer hexString = new StringBuffer();
for( int i = 0; i < hash.length; i++ )
{
String hex = Integer.toHexString( 0xff & hash[ i ] );
if( hex.length() == 1 )
{
hexString.append( '0' );
}
hexString.append( hex );
}
有人知道怎么做吗?
【问题讨论】:
-
发布/解释你的 Java 代码不起作用
-
你的java代码出了什么问题?正如 Reimeus 所说,发布您的 Java 代码以便我们为您提供帮助
标签: java hash encoding vb6 sha256