java加入md5_javamd5加密解密

java加入md5_javamd5加密解密方法二、importjava.security.spec.*;classMD5_test{publicfinalstaticStringMD5(Strings){charhexDigits[]={‘0′,’1′,’2′,’3′,’4′,’5′,’6′,’7′,’8′,’9′,’a’,’b’,’c’,’d’,’e’,’f’};try{byte…

大家好,又见面了,我是你们的朋友全栈君。

方法二、

import java.security.spec.*;

class MD5_test {

public final static String MD5(String s) {

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

‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’ };

try {

byte[] strTemp = s.getBytes();

MessageDigest mdTemp = MessageDigest.getInstance(“MD5”);

mdTemp.update(strTemp);

byte[] md = mdTemp.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) {

return null;

}

}

public static void main(String[] args) {

// MD5_Test aa = new MD5_Test();

System.out.print(MD5_test.MD5(“b”));

}

}

加密,解密

import java.security.MessageDigest;

public class MD5andKL {

// MD5加码。32位

public static String MD5(String inStr) {

MessageDigest md5 = null;

try {

md5 = MessageDigest.getInstance(“MD5”);

} catch (Exception e) {

System.out.println(e.toString());

e.printStackTrace();

return “”;

}

char[] charArray = inStr.toCharArray();

byte[] byteArray = new byte[charArray.length];

for (int i = 0; i < charArray.length; i++)

byteArray[i] = (byte) charArray[i];

byte[] md5Bytes = md5.digest(byteArray);

StringBuffer hexValue = new StringBuffer();

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

int val = ((int) md5Bytes[i]) & 0xff;

if (val < 16)

hexValue.append(“0”);

hexValue.append(Integer.toHexString(val));

}

return hexValue.toString();

}

// 可逆的加密算法

public static String KL(String inStr) {

// String s = new String(inStr);

char[] a = inStr.toCharArray();

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

a[i] = (char) (a[i] ^ ‘t’);

}

String s = new String(a);

return s;

}

// 加密后解密

public static String JM(String inStr) {

char[] a = inStr.toCharArray();

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

a[i] = (char) (a[i] ^ ‘t’);

}

String k = new String(a);

return k;

}

// 测试主函数

public static void main(String args[]) {

String s = new String(“a”);

System.out.println(“原始:” + s);

System.out.println(“MD5后:” + MD5(s));

System.out.println(“MD5后再加密:” + KL(MD5(s)));

System.out.println(“解密为MD5后的:” + JM(KL(MD5(s))));

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159037.html原文链接:https://javaforall.net

(1)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java8 groupingby_Java8stream中利用groupingBy进行多字段分组求和

    java8 groupingby_Java8stream中利用groupingBy进行多字段分组求和对集合按照单个属性分组、分组计数、排序Listitems=Arrays.asList(“apple”,”apple”,”banana”,”apple”,”orange”,”banana”,”papaya”);//分组Map>result1=items.stream().collect(Collectors.groupingBy(Function.identity()));…

    2022年8月20日
    16
  • 2020最新版MySQL数据库面试题(三)[通俗易懂]

    2020最新版MySQL数据库面试题(三)

    2022年2月14日
    36
  • sql中declare声明变量_什么是变量说明

    sql中declare声明变量_什么是变量说明前言:最近在修改Android项目的后台业务实现,发现很多地方都需要跟数据库的表连接,视图,存储过程打交道,接触一段时间,感觉不会编写sql脚本真是硬伤,在此小结一下。

    2022年8月20日
    5
  • Unity3d场景快速烘焙【2020】

    Unity3d场景快速烘焙【2020】很多刚刚接触Unity3d的童鞋花了大量的时间自学,可总是把握不好Unity3d的烘焙,刚从一个坑里爬出来,又陷入另一个新的坑,每次烘焙一个场景少则几个小时,多则几十个小时,机器总是处于假死机状态,半天看不到结果,好不容易烘焙完了,黑斑、撕裂、硬边、漏光或漏阴影等缺陷遍布,惨不忍睹,整体效果暗无层次,或者苍白无力,灯光该亮的亮不起来,该暗的暗不下去,更谈不上有什么意境,痛苦的折磨,近乎失去了信心,一个团队从建模到程序,都没什么问题,可一到烘焙这一关,就堵得心塞,怎么也搞不出好的视觉效果,作品没法及时向用户交

    2022年6月11日
    29
  • 信道估计LS和MMSE_盲信道估计

    信道估计LS和MMSE_盲信道估计信道估计之LS在无线通信系统中,系统的性能主要受到无线信道的制约。基站和接收机之间的传播路径复杂多变,从简单的视距传输到受障碍物反射、折射、散射影响的传播。在无线传输环境中,接收信号会存在多径时延,时间选择性衰落和频域偏移,多径时延会带来符号串扰(ISI),可以通过插入保护间隔来减少;而由于时间选择性衰落和频率偏移带来的子载波干扰(ICI),除了依靠时频偏补偿来纠正外,还需要对信道进行估计,进一步进行补偿,即需要进行频域均衡和时域均衡。因此,信号估计性能的好坏直接影响接收信号的解调结果。这里对均衡技术就不

    2025年7月10日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号