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

javamd5(javamd5技术)

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

大家好,今天就和小鱼一起来看看这个问题吧 。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.com/n/kj/35807.html

标签: 技术
分享给朋友:

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

乞巧节有什么风俗活动(乞巧节的风俗)

乞巧节有什么风俗活动(乞巧节的风俗)

大家好,今天就和吖吖一起来看看这个问题吧 。乞巧节的风俗,乞巧节有什么风俗活动很多人还不知道,现在让我们一起来看看吧!  一、  乞巧节的风俗  七夕节习俗有很多,比如:香桥会、接露水、拜七姐、斗巧、乞求姻缘、游七姐水、储七夕水、为牛庆生、七巧贡案、拜牛郎、染指甲、七夕观星、听悄悄话、净水视影、结红...

谷雨的特点和风俗(谷雨节气的民间风俗)

谷雨的特点和风俗(谷雨节气的民间风俗)

大家好,今天就和小白一起来看看这个问题吧 。谷雨节气的民间风俗,谷雨的特点和风俗很多人还不知道,现在让我们一起来看看吧!  一、谷雨节气的民间风俗  1、走谷雨  古时有“走谷雨”的风俗,这天青年妇女走村串亲,有的到野外走一圈就回来。寓意与自然相融合,强身健体。  2、喝谷雨茶  传说谷雨这天的茶喝...

秦始皇称帝时间在什么时候(秦始皇在位了多少年)

秦始皇称帝时间在什么时候(秦始皇在位了多少年)

大家好,今天就和蜜蜜一起来看看这个问题吧 。秦始皇在位了多少年,秦始皇称帝时间在什么时候很多人还不知道,现在让我们一起来看看吧!  一、  秦始皇在位了多少年  秦始皇总共在位三十七年的时间,他从公元前246年继承秦王王位开始,一直到公元前221年这段时间,秦始皇只是秦国的秦王,公元221年他才正式...

每隔几年出现一次闰年(闰年几年一次)

每隔几年出现一次闰年(闰年几年一次)

大家好,今天就和丹尼一起来看看这个问题吧 。闰年几年一次,每隔几年出现一次闰年很多人还不知道,现在让我们一起来看看吧!  一、  闰年几年一次  闰年是公历中的名词,分为普通闰年和世纪闰年。普通闰年是4年一次,公历年份是4的倍数的,且不是100的倍数,为普通闰年。世纪闰年是400年一次,公历年份是整...

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

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

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

三月三是什么神仙的诞辰(三月三是仙家什么节日)

三月三是什么神仙的诞辰(三月三是仙家什么节日)

大家好,今天就和可心一起来看看这个问题吧 。三月三是仙家什么节日,三月三是什么神仙的诞辰很多人还不知道,现在让我们一起来看看吧!  导语:还有几天的时间就是三月三了,这天对于我们很多人来说都是一个普通的日子,原本的三月三上巳节也不存在了,因此这天只能在平淡中度过。但是对于道教而言,三月三还是很重要的...