【问题标题】:Translate encoding code from VB to Java将编码代码从 VB 翻译成 Java
【发布时间】: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


【解决方案1】:

我找到了解决方案。正确的 Java 代码应如下所示:

byte[] bytes = text.getBytes( "UTF-8" );
MessageDigest messageDigest = MessageDigest.getInstance( "SHA-256" );
byte[] hash = messageDigest.digest( bytes );
String result = Base64.getEncoder().encodeToString(hash);

【讨论】:

    猜你喜欢
    • 2015-11-25
    • 1970-01-01
    • 2016-08-04
    • 2014-01-06
    • 2012-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多