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

javamd5(javamd5技术)

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

大家好,今天就和小鱼一起来看看这个问题吧 。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个工作日内删除。谢谢!

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

标签: 技术
分享给朋友:

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

农历和阴历是一回事吗(农历是阴历吗)

农历和阴历是一回事吗(农历是阴历吗)

大家好,今天就和兔兔一起来看看这个问题吧 。农历是阴历吗,农历和阴历是一回事吗很多人还不知道,现在让我们一起来看看吧!  导语:平常与人交流中,常常会有人问你是几月几号过生日的,之后会问是农历还是阴历过生日。有些人听到很是诧异,什么农历还是阴历,不是都一样嘛。很多人不了解两者的差别,对农历与阴历傻傻...

夕阳西沉是什么时候(夕阳西沉的时间)

夕阳西沉是什么时候(夕阳西沉的时间)

大家好,今天就和丹尼一起来看看这个问题吧 。夕阳西沉的时间,夕阳西沉是什么时候很多人还不知道,现在让我们一起来看看吧!导语:我国汉子博大精深,几乎每一个时间段都能用一些四字词来描写,例如,我们要描写日落时的样子,可以用“夕阳西沉”一词。那么,具体夕阳西沉的时间是指哪一段呢?一天中夕阳西沉是什么时候?...

清明节的来历是什么(清明节最简短的来历)

清明节的来历是什么(清明节最简短的来历)

大家好,今天就和可心一起来看看这个问题吧 。清明节最简短的来历,清明节的来历是什么很多人还不知道,现在让我们一起来看看吧!一、清明节最简短的来历  在春秋战国时期,为纪念介子推,晋文公将介子推被烧死的那一天定为寒食节,也就是现在的清明节。  清明节,又称踏青节、行清节、三月节、祭祖节等,节期在仲春与...

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

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

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

建党百年的七律新韵(歌颂建党一百周年七言绝句)

建党百年的七律新韵(歌颂建党一百周年七言绝句)

大家好,今天就和小白一起来看看这个问题吧 。歌颂建党一百周年七言绝句,建党百年的七律新韵很多人还不知道,现在让我们一起来看看吧!  一、  歌颂建党一百周年七言绝句  诗篇一  红船举帜未能忘,九秩沧桑风雨狂。  喋血井岗全大义,抗倭陕北竖朝阳。  若无一党公心在,哪有万民洪福长?  圆梦更当公仆任...

中国哪个朝代的人可以吃玉米(哪个朝代能吃到玉米)

中国哪个朝代的人可以吃玉米(哪个朝代能吃到玉米)

大家好,今天就和小熊一起来看看这个问题吧 。哪个朝代能吃到玉米,中国哪个朝代的人可以吃玉米很多人还不知道,现在让我们一起来看看吧!  导语:玉米是一种很美味的粗粮,且营养价值高,常食用可美容养颜,延缓衰老,增强人的体力和耐力。由于玉米的饱腹感比较强,一般可替代主食,因此受到许多减肥者的喜爱。那么,您...