当前位置:首页 > 科技 > 正文内容

javamd5(javamd5技术)

2022-06-19 04:06:00科技798

大家好,今天就和小鱼一起来看看这个问题吧 。javamd5技术,javamd5很多人还不知道,现在让我们一起来看看吧!

1、 首先,运行以下命令

javamd5(javamd5技术)

2、 导入Java . security . message digest;

3、 公共类Test_MD5{

4、 公共最终静态字符串MD5(字符串s) {

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

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

7、 尝试{

8、 byte[]strTemp=s . getbytes();

9、 //使用MD5创建MessageDigest对象

10、 message digest MD temp=message digest . getinstance(' MD5 ');

11、 MD temp . update(strTemp);

12、 byte[]MD=MD temp . digest();

13、 int j=md.length

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

15、 int k=0;

16、 for(int I=0;I j;i ) {

17、 字节b=MD[I];

18、 //system . out . println((int)b);

19、 //将对数字(int) B进行双字节加密。

20、 str[k]=hex digits[b 40xf];

21、 str[k]=hex digits[b0xf];

22、 }

23、 返回新字符串(str);

24、 } catch(异常e){返回null}

25、 }

26、 //测试

27、 公共静态void main(String[] args) {

28、 System.out.println('caidao的' caidao MD5是加密的:\n' Test_MD5。MD5('财道');

29、 system . out . println(');

30、 }

31、 }

32、 MD5的典型应用是在消息(字节串)上生成指纹,以防止它被“篡改”。例如,您在一个名为readme.txt的文件中编写一个段落,并为这个readme.txt生成一个MD5值并记录下来。然后,您可以将该文件传播给其他人。如果其他人修改了文件中的任何内容,当您重新计算该文件的MD5时,您会发现它。如果有第三方认证机构,MD5还可以防止文档作者的‘否认’,这就是所谓的数字* * * *应用。

33、 MD5也广泛用于加密和解密技术。在很多操作系统中,用户的密码是以MD5值的形式保存的(或者类似的其他算法)。当用户登录时,系统将用户输入的密码计算成MD5值,然后与系统中保存的MD5值进行比较,但系统并不‘知道’用户的密码是什么。

34、 MD5理论上是单向哈希,一些黑客通过一种叫做‘运行字典’的方法破解这个密码。字典的获取方式有两种,一种是日常收集的用作密码的字符串表,另一种是通过排列组合生成的。这些字典项的MD5值首先由MD5程序计算,然后在这个字典中查找目标的MD5值。

35、 即使密码的最大长度是8,并且密码只能是字母和数字,总共26 ^ 26 ^ 10=62个字符,排列组合词典中的条目数也是P (62,1) P (62,2).P (62,8),这已经是非常天文数字了。需要TB级磁盘组来存储这个字典和这个方法

36、 方法二,

37、 导入Java . security . spec . *;

38、 MD5_test类{

39、 公共最终静态字符串MD5(字符串s) {

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

41、 甲、乙、丙、丁、戊

42、  try {

43、  byte[] strTemp = s.getBytes();

44、  MessageDigest mdTemp = MessageDigest.getInstance("MD5");

45、  mdTemp.update(strTemp);

46、  byte[] md = mdTemp.digest();

47、  int j = md.length;

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

49、  int k = 0;

50、  for (int i = 0; i < j; i++) {

51、  byte byte0 = md[i];

52、  str[k++] = hexDigits[byte0 >>> 4 & 0xf];

53、  str[k++] = hexDigits[byte0 & 0xf];

54、  }

55、  return new String(str);

56、  } catch (Exception e) {

57、  return null;

58、  }

59、  }

60、  public static void main(String[] args) {

61、  // MD5_Test aa = new MD5_Test();

62、  System.out.print(MD5_test.MD5("b"));

63、  }

64、  }

65、  加密,解密

66、  import java.security.MessageDigest;

67、  public class MD5andKL {

68、  // MD5加码。32位

69、  public static String MD5(String inStr) {

70、  MessageDigest md5 = null;

71、  try {

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

73、  } catch (Exception e) {

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

75、  e.printStackTrace();

76、  return "";

77、  }

78、  char[] charArray = inStr.toCharArray();

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

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

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

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

83、  StringBuffer hexValue = new StringBuffer();

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

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

86、  if (val < 16)

87、  hexValue.append("0");

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

89、  }

90、  return hexValue.toString();

91、  }

92、  // 可逆的加密算法

93、  public static String KL(String inStr) {

94、  // String s = new String(inStr);

95、  char[] a = inStr.toCharArray();

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

97、  a[i] = (char) (a[i] ^ 't');

98、  }

99、  String s = new String(a);

100、  return s;

101、  }

102、  // 加密后解密

103、  public static String JM(String inStr) {

104、  char[] a = inStr.toCharArray();

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

106、  a[i] = (char) (a[i] ^ 't');

107、  }

108、  String k = new String(a);

109、  return k;

110、  }

111、  // 测试主函数

112、  public static void main(String args[]) {

113、  String s = new String("a");

114、  System.out.println("原始:" + s);

115、  System.out.println("MD5后:" + MD5(s));

116、  System.out.println("MD5后再加密:" + KL(MD5(s)));

117、  System.out.println("解密为MD5后的:" + JM(KL(MD5(s))));

118、  }

119、  }

120、方法三、

121、package endecrypt;

122、  import java.io.UnsupportedEncodingException;

123、  import java.security.MessageDigest;

124、  import java.security.NoSuchAlgorithmException;

125、  /**

126、  * 采用MD5加密解密

127、  * @author tfq

128、  * @datetime 2011-10-13

129、  */

130、  public class MD5Util {

131、  /***

132、  * MD5加码 生成32位md5码

133、  */

134、  public static String string2MD5(String inStr){

135、  MessageDigest md5 = null;

136、  try{

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

138、  }catch (Exception e){

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

140、  e.printStackTrace();

141、  return "";

142、  }

143、  char[] charArray = inStr.toCharArray();

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

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

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

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

148、  StringBuffer hexValue = new StringBuffer();

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

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

151、  if (val < 16)

152、  hexValue.append("0");

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

154、  }

155、  return hexValue.toString();

156、  }

157、  /**

158、  * 加密解密算法 执行一次加密,两次解密

159、  */

160、  public static String convertMD5(String inStr){

161、  char[] a = inStr.toCharArray();

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

163、  a[i] = (char) (a[i] ^ 't');

164、  }

165、  String s = new String(a);

166、  return s;

167、  }

168、  // 测试主函数

169、  public static void main(String args[]) {

170、  String s = new String("tangfuqiang");

171、  System.out.println("原始:" + s);

172、  System.out.println("MD5后:" + string2MD5(s));

173、  System.out.println("加密的:" + convertMD5(s));

174、  System.out.println("解密的:" + convertMD5(convertMD5(s)));

175、  }

176、  }

这篇文章到此就结束,希望能帮助到大家。

扫描二维码推送至手机访问。

版权声明:文章内容摘自网络,如果无意之中侵犯了您的版权,请联系本站,本站将在3个工作日内删除。谢谢!

本文链接:https://www.xixia168.cn/n/kj/35807.html

标签: 技术
分享给朋友:

“javamd5(javamd5技术)” 的相关文章

春分传统美食(春分吃什么食物)

春分传统美食(春分吃什么食物)

大家好,今天就和兔兔一起来看看这个问题吧 。春分吃什么食物,春分传统美食很多人还不知道,现在让我们一起来看看吧!  一、春分吃什么食物  1、吃春菜  昔日四邑有个不成节的习俗,叫做“春分吃春菜”。“春菜”是一种野苋菜,乡人称之为“春碧蒿”。逢春分那天,全村人都去采摘春菜。在田野中搜寻时,多见是嫩绿...

为什么三月三要煮鸡蛋(三月三煮鸡蛋的来历)

为什么三月三要煮鸡蛋(三月三煮鸡蛋的来历)

大家好,今天就和兔兔一起来看看这个问题吧 。三月三煮鸡蛋的来历,为什么三月三要煮鸡蛋很多人还不知道,现在让我们一起来看看吧!    三月三煮鸡蛋的来历源于古代楚地人们因为风吹雨打,头痛病很常见。三月初三,神农路过云梦泽(今孝感),见乡民头疼难耐,他找来野鸡蛋和地菜,煮给人们充饥。当人们吃了以后,头不...

教师节的知识有哪些(教师节内容资料)

教师节的知识有哪些(教师节内容资料)

大家好,今天就和小新一起来看看这个问题吧 。教师节内容资料,教师节的知识有哪些很多人还不知道,现在让我们一起来看看吧!  教师节一、教师节内容资料  中国教师节(9月10日)  1985年1月21日,第六届全国人大常委会第九次会议作出决议,将每年的9月10日定为我国的教师节。  尊师重教是中国的优良...

元宵节有哪些别称(元宵节有几种叫法)

元宵节有哪些别称(元宵节有几种叫法)

大家好,今天就和小鱼一起来看看这个问题吧 。元宵节有几种叫法,元宵节有哪些别称很多人还不知道,现在让我们一起来看看吧!    元宵节别名:Lantern Festival、上元节、元夕、天官节、小正月、春灯节。元宵节是中国的传统节日,每年农历的正月十五日便是此节。按中国民间的传统,在这天上皓月高悬的...

二月二吃猪头肉的来历(二月二为什么要吃猪头肉)

二月二吃猪头肉的来历(二月二为什么要吃猪头肉)

大家好,今天就和毛毛一起来看看这个问题吧 。二月二为什么要吃猪头肉,二月二吃猪头肉的来历很多人还不知道,现在让我们一起来看看吧!  一、  二月二为什么要吃猪头肉  二月二龙抬头要吃猪头肉,是由古时候的一些风俗保留下来的,象征着吉祥,保佑平安。古时候农民为了求雨,保一年风调雨顺,都会把最好的祭品奉献...

重阳节用英语怎么表示(重阳节用英文怎么说)

重阳节用英语怎么表示(重阳节用英文怎么说)

大家好,今天就和小月一起来看看这个问题吧 。重阳节用英文怎么说,重阳节用英语怎么表示很多人还不知道,现在让我们一起来看看吧!    重阳节的英文是Double Ninth Festival。相关例句为:Huizhou folk have the custom ofmountaineering and...