首页 > 编程知识 正文

包含java用字符串生成的md5的词条

时间:2023-12-19 00:42:51 阅读:317467 作者:FJJO

本文目录一览:

谁能告诉我一个简洁可用的方法用java求一个字符串生成的md5码。

public class MD5 {

public static String crypt(String str) throws NoSuchAlgorithmException {

if (str == null || str.length() == 0) {

throw new IllegalArgumentException();

}

StringBuffer hexString = new StringBuffer();

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

md.update(str.getBytes());

byte[] hash = md.digest();

for (int i = 0; i hash.length; i++) {

if ((0xff hash[i]) 0x10) {

hexString.append("0" + Integer.toHexString((0xFF hash[i])));

} else {

hexString.append(Integer.toHexString(0xFF hash[i]));

}

}

return hexString.toString();

}

java生成的MD5,和c#的生成的不一致,有java代码,求c#代码!

考虑一下中文字符问题。两边使用的编码是不是一样的。保持一样就可以了。

建议使用UTF8编码

JAVA代码如下(在你给同的代码上只做了少量修改):

public class Security {

public static void main(String[] args) {

try {

System.out.println(MD5("中国"));

} catch(Exception ex) {}

}

public static String MD5(String txt) {

char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',

'a', 'b', 'c', 'd', 'e', 'f' };

try {

byte[] btInput = txt.getBytes("utf-8");

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

// 使用指定的字节更新摘要

mdInst.update(btInput);

// 获得密文

byte[] md = mdInst.digest();

// 把密文转换成十六进制的字符串形式

int j = md.length;

char str[] = new char[j * 2];

int k = 0;

for (int i = 0; i  j; i++) {

byte byte0 = md[i];

str[k++] = hexDigits[byte0  4  0xf];

str[k++] = hexDigits[byte0  0xf];

}

return new String(str);

} catch (Exception e) {

e.printStackTrace();

return null;

}

}

}

C#代码如下:

static void Main(string[] args)

        {

            Console.WriteLine(Md5("中国"));

            Console.ReadLine();

        }

        static string Md5(string txt) {

            byte[] result = Encoding.UTF8.GetBytes(txt);   

            MD5 md5 = new MD5CryptoServiceProvider();

            byte[] output = md5.ComputeHash(result);

            return BitConverter.ToString(output).Replace("-", "");  

        }

java怎么把数据转换成md5

不是数据,而是字符串。

/**利用MD5进行加密

* @param str 待加密的字符串

* @return 加密后的字符串

* @throws NoSuchAlgorithmException 没有这种产生消息摘要的算法

* @throws UnsupportedEncodingException

*/

public String EncoderByMd5(String str) throws NoSuchAlgorithmException, UnsupportedEncodingException{

//确定计算方法

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

BASE64Encoder base64en = new BASE64Encoder();

//加密后的字符串

String newstr=base64en.encode(md5.digest(str.getBytes("utf-8")));

return newstr;

}

java /groovy 的MD5类 及怎么使用

String dst = "一个待生成

md5值

的字符串";

MessageDigest md = MessageDigest.

getInstance

("MD5");

md.update(dst.getBytes());// 将original传给md5

byte[] digest = md.digest();// 产生md5序列

StringBuffer sb = new StringBuffer();// 转换md5值为

16进制

for (byte b : digest) {

sb.append(String.format("%02x", b 0xff));

}

System.out.println("原值:" + dst);

System.out.println("MD5:" + sb);

java怎么把字符串进行md5加密

给你看源代码,我自己写的

public static String md5(String src){

try{

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

byte[] output = md.digest(src.getBytes());//加密处理

//将加密结果output利用Base64转换成字符串输出

String ret = Base64.encodeBase64String(output);

return ret;

}catch(Exception e){

throw new NoteException("密码加密失败",e);

}

}

public static void main(String[] args) {

System.out.println(md5("123456"));

}

如何使用Java生成MD5代码

这是我以前做的一个小项目时用到md5写的

import java.security.MessageDigest;

import java.security.NoSuchAlgorithmException;

//将用户密码进行md5加密   并返回加密后的32位十六进制密码

public class MD5Util {

public static String md5(String password) {

try {

// 获取md5对象

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

// 获取加密后的密码并返回十进制字节数组

byte[] bytes = md.digest(password.getBytes());

// 遍历数组得到每个十进制数并转换成十六进制

StringBuffer sb = new StringBuffer();

for (byte b : bytes) {

// 把每个数转成十六进制 存进字符中

sb.append(toHex(b));

}

String finish = sb.toString();

return finish;

} catch (NoSuchAlgorithmException e) {

e.printStackTrace();

throw new RuntimeException(e);

}

}

// 十进制转十六进制方法

private static String toHex(byte b) {

int target = 0;

if (b 0) {

target = 255 + b;

} else {

target = b;

}

int first = target / 16;

int second = target % 16;

return Hex[first] + Hex[second];

}

static String[] Hex = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",

"a", "b", "c", "d", "e", "f" };

/*public static void main(String[] args) {

String a = MD5Util.md5("1234");

System.out.println(a);

}*/

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。