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

  • 1、谁能告诉我一个简洁可用的方法用java求一个字符串生成的md5码。
  • 2、java生成的MD5,和c#的生成的不一致,有java代码,求c#代码!
  • 3、java怎么把数据转换成md5
  • 4、java /groovy 的MD5类 及怎么使用
  • 5、java怎么把字符串进行md5加密
  • 6、如何使用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();

}

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

建议使用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(“-“, “”);  

        }

不是数据,而是字符串。

/**利用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;

}

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);

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

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”));

}

这是我以前做的一个小项目时用到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);

}*/

}

原创文章,作者:C69TA,如若转载,请注明出处:https://www.506064.com/n/126543.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
C69TAC69TA
上一篇 2024-10-03 23:08
下一篇 2024-10-03 23:08

相关推荐

  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29
  • VSCode为什么无法运行Java

    解答:VSCode无法运行Java是因为默认情况下,VSCode并没有集成Java运行环境,需要手动添加Java运行环境或安装相关插件才能实现Java代码的编写、调试和运行。 一、…

    编程 2025-04-29
  • Java任务下发回滚系统的设计与实现

    本文将介绍一个Java任务下发回滚系统的设计与实现。该系统可以用于执行复杂的任务,包括可回滚的任务,及时恢复任务失败前的状态。系统使用Java语言进行开发,可以支持多种类型的任务。…

    编程 2025-04-29
  • Java 8 Group By 会影响排序吗?

    是的,Java 8中的Group By会对排序产生影响。本文将从多个方面探讨Group By对排序的影响。 一、Group By的概述 Group By是SQL中的一种常见操作,它…

    编程 2025-04-29

发表回复

登录后才能评论