Foxtable(狐表)用户栏目专家坐堂 → MD5加密


  共有5452人关注过本帖树形打印复制链接

主题:MD5加密

帅哥哟,离线,有人找我吗?
otterlike
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:103 积分:1228 威望:0 精华:0 注册:2017/5/16 22:42:00
MD5加密  发帖心情 Post By:2022/7/6 8:55:00 [只看该作者]

老师好,我在写一个接口,对方给了我一个MD5加密规则,代码如下:

import java.math.BigInteger;

import java.security.MessageDigest;

import java.security.NoSuchAlgorithmException;

 

public class Md5Util {

    //写一个md5加密的方法

    public static String md5(String plainText)  {

        //定义一个字节数组

        byte[] secretBytes = null;

        try {

            // 生成一个MD5加密计算摘要

            MessageDigest md = MessageDigest.getInstance("MD5");

            //对字符串进行加密

            md.update(plainText.getBytes());

            //获得加密后的数据

            secretBytes = md.digest();

        } catch (NoSuchAlgorithmException e) {

            throw new RuntimeException("没有md5这个算法!");

        }

        //将加密后的数据转换为16进制数字

        String md5code = new BigInteger(1, secretBytes).toString(16);// 16进制数字

        // 如果生成数字未满32位,需要前面补0

int length = md5code.length();

        for (int i = 0; i < 32 - length;  i++) {

            md5code = "0" + md5code;

        }

        return md5code;

    }

 

}

   

我用代码转换器,将JAVA转换为VB之后如下:

Class SurroundingClass

    Private Function BigInteger() As import

    Private Function MessageDigest() As import

    Private Function NoSuchAlgorithmException() As import

    Public Class Md5Util

        Public Shared Function md5(ByVal plainText As String) As String

            Dim secretBytes As Byte() = Nothing

 

            Try

                Dim md As MessageDigest = MessageDigest.getInstance("MD5")

                md.update(plainText.getBytes())

                secretBytes = md.digest()

            Catch e As NoSuchAlgorithmException

                Throw New RuntimeException("没有md5这个算法!")

            End Try

 

            Dim md5code As String = New BigInteger(1, secretBytes).toString(16)

            Dim length As Integer = md5code.length()

 

            For i As Integer = 0 To 32 - length - 1

                md5code = "0" & md5code

            Next

 

            Return md5code

        End Function

    End Class

End Class


然后,我用转换为VB之后的代码对字符"a"进行加密测试,提示未知编译错误,请老师帮忙指正错误在哪里,谢谢!

Dim str As String = "a"

Dim md5Str As String = Md5Util.MD5(str)

Output.Show(md5Str)

[此贴子已经被作者于2022/7/6 9:04:08编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/6 9:20:00 [只看该作者]

java没有办法转换为vb使用。请对方提供.net比如C#的代码

 回到顶部
帅哥哟,离线,有人找我吗?
otterlike
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:103 积分:1228 威望:0 精华:0 注册:2017/5/16 22:42:00
  发帖心情 Post By:2022/7/22 15:20:00 [只看该作者]

老师好,对方提供的.net代码如下,我看不懂,请问如何处理?

public static string Md5(string value)
        {
            var result = string.Empty;
            if (string.IsNullOrEmpty(value)) return result;
            using (var md5 = MD5.Create())
            {
                result = GetMd5Hash(md5, value);
            }
            return result;
        }
        static string GetMd5Hash(MD5 md5Hash, string input)
        {

            byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(input));
            var sBuilder = new StringBuilder();
            foreach (byte t in data)
            {
                sBuilder.Append(t.ToString("x2"));
            }
            return sBuilder.ToString();
        }

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/22 15:27:00 [只看该作者]

Dim s As String = "要加密的内容"
Using md5 As System.Security.Cryptography.MD5 = System.Security.Cryptography.MD5.Create
    Dim data() As Byte = md5.ComputeHash(Encoding.UTF8.GetBytes(s))
    Dim sBuilder As New StringBuilder()
    For Each t As Byte In data
        sBuilder.Append(t.ToString("x2"))
    Next
    dim 结果 as string =sBuilder.ToString()
    Output.Show(结果 )
End Using

 回到顶部
帅哥哟,离线,有人找我吗?
otterlike
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:103 积分:1228 威望:0 精华:0 注册:2017/5/16 22:42:00
  发帖心情 Post By:2022/7/22 15:32:00 [只看该作者]

非常感谢大神的帮助,让我顶礼膜拜!

 回到顶部