网站安全之Java加密体系(MD5算法)
2015-05-16 16:21
274 查看
在上午写了一篇《网站入侵的攻击方法与原理》 我在那篇博客讲了一些我们现网络中常用的攻击方法原理,让大家不再于只把这些不安全因素归于一词“电脑中毒了”;其实有很多人,包括从事计算机的程序员,他们对网络管理也不太理解,也许是没有接触过,因此对网络攻击原理不太懂。
曾有一次我看过一个笑话——小红有一个程序员男朋友,有一天,小红的几个同事来到他们家玩,得知小红的男票是程序员,外行人对于程序员都很好奇,他们虽然不懂程序员具体是做什么,但一定是计算机很厉害的。于是开始请教起了计算机方面的事。A同事问"我最近想买台电脑,不知怎么样的配置好呢?";B同事问“最近我电脑越来越卡,不知是不是中毒了,可杀毒软件又杀不出来”;C同事也说“对对对,我的电脑偶尔还只能上QQ,不能打开网站,这是怎么回事呢?”。。。。。一人一句一大堆的问题出来,小红的男票的脸越来越红,脸色越来越难看。大家看到后怕怕的,偷偷问小红“你男票脾气不太好吧,我们请教一下问题,看他样子要发脾气了。”;可没想到的是结果小红的男票来一句话让大家愣住了,“我只会写程序,其他的我都不会,不要问我这些”
上面的故事我有改过,因为只是大概意思是那样的,也许有人看过此故事。但原理一样,这故事也告诉我们程序员,术有专攻没有错,但也要了解一些计算机其他知识,扩展自己的见识,有时候抽空了解一下计算机硬件与网络知识在生活与工作中还是很有用的,毕竟外行人真觉得我们程序员==计算机很厉害的那种概念。可别像故事那样出现尴尬情景,我自己以前在学校时也有学过一些硬件方面的知识和局域网的搭建,虽然几年过去了,我依然还记得网线插头上水晶头各颜色线的打发,所以我们了解一下计算机其他方面的知识,还是有必要的。当然,我们最主要的还是程序开发和网络知识;
我的每篇博客总是闲话太多,呵呵,谁让我不是那种内向又不爱说话的程序员呢。大家请包容啊,因为我是JAVA程序员,那接下来我都会讲一些JAVA加密体系方面的知识,我会分几篇来讲,以免太乱
信息摘要
SHA(安全散列算法)
DES(数据加密算法)
理论知识我就再啰嗦了,有兴趣多了解的可以去查询相关方面的知识进行学习;接下来我来执行使用JAVA进行MD5加密,步骤简单
初始化MessageDigest信息摘要对象
传入需要计算的字条串更新摘要对象
计算信息摘要
将byte[]转换为长度为32位的16进制字符串
可以看出,“邱子豪”三个字,经过JAVA中MD5算法加密后是:3670cfbab80f4888d59a04d2a3daf3f9 ;当你拿到加密后的这个乱码,你是否还能想得出原来只是三个中文的加密数据吗?很有意思吧,大家可以自己试试。至于MD5加密的破解问题,那与我们并没有太大的关联,我们只要会用,拿这个进行网络安全方面进入更深的研究,还是有必要了解的。接下来的博客,我会抽时间再分享一些其他安全方面的介绍,请关注本人博客,记得评价点赞哦,我会一一回复评价的,祝大家周末愉快。
曾有一次我看过一个笑话——小红有一个程序员男朋友,有一天,小红的几个同事来到他们家玩,得知小红的男票是程序员,外行人对于程序员都很好奇,他们虽然不懂程序员具体是做什么,但一定是计算机很厉害的。于是开始请教起了计算机方面的事。A同事问"我最近想买台电脑,不知怎么样的配置好呢?";B同事问“最近我电脑越来越卡,不知是不是中毒了,可杀毒软件又杀不出来”;C同事也说“对对对,我的电脑偶尔还只能上QQ,不能打开网站,这是怎么回事呢?”。。。。。一人一句一大堆的问题出来,小红的男票的脸越来越红,脸色越来越难看。大家看到后怕怕的,偷偷问小红“你男票脾气不太好吧,我们请教一下问题,看他样子要发脾气了。”;可没想到的是结果小红的男票来一句话让大家愣住了,“我只会写程序,其他的我都不会,不要问我这些”
上面的故事我有改过,因为只是大概意思是那样的,也许有人看过此故事。但原理一样,这故事也告诉我们程序员,术有专攻没有错,但也要了解一些计算机其他知识,扩展自己的见识,有时候抽空了解一下计算机硬件与网络知识在生活与工作中还是很有用的,毕竟外行人真觉得我们程序员==计算机很厉害的那种概念。可别像故事那样出现尴尬情景,我自己以前在学校时也有学过一些硬件方面的知识和局域网的搭建,虽然几年过去了,我依然还记得网线插头上水晶头各颜色线的打发,所以我们了解一下计算机其他方面的知识,还是有必要的。当然,我们最主要的还是程序开发和网络知识;
我的每篇博客总是闲话太多,呵呵,谁让我不是那种内向又不爱说话的程序员呢。大家请包容啊,因为我是JAVA程序员,那接下来我都会讲一些JAVA加密体系方面的知识,我会分几篇来讲,以免太乱
Java加密体系
大家都知道,JAVA是安全的,比如自动内存管理;自动数组溢出检查;字节代码的验证机制;独特的安全类加载。。。。。JAVA都是需要编译成.class格式后再执行,其他人看不到项目的源代码,在代码的安全性就很高。JAVA平台已经实现好了加密算法只要调用类就可以了,在JAVA加密体系中JCA和JCE是JAVA中的两个重要的框架:JCA——Java Cryptography Architecture
数字签名信息摘要
JCE——Java Cryptography Extension
MD5(消息摘要算法)SHA(安全散列算法)
DES(数据加密算法)
理论知识我就再啰嗦了,有兴趣多了解的可以去查询相关方面的知识进行学习;接下来我来执行使用JAVA进行MD5加密,步骤简单
初始化MessageDigest信息摘要对象
传入需要计算的字条串更新摘要对象
计算信息摘要
将byte[]转换为长度为32位的16进制字符串
源代码如下:
package com.qzh.test; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Scanner; public class MD5Test { public void TestMD5(String input) throws NoSuchAlgorithmException, UnsupportedEncodingException{ //1.初始化MessageDigest信息摘要对象 MessageDigest md = MessageDigest.getInstance("md5"); //2.传入需要计算的字条串更新摘要对象 md.update(input.getBytes("UTF-8")); //3.计算信息摘要 byte[] hashCode = md.digest(); //4.将byte[]转换为长度为32位的16进制字符串 StringBuffer sb = new StringBuffer(); for(byte b:hashCode){ sb.append(Character.forDigit((b>>4) & 0xf, 16)); sb.append(Character.forDigit(b & 0xf, 16)); } System.out.println("加密后:" + sb.toString()); } public static void main(String[] args) throws NoSuchAlgorithmException, UnsupportedEncodingException { Scanner scanner = new Scanner(System.in); System.out.println("请输入你要加密的数据......"); String input = scanner.nextLine(); MD5Test md5 = new MD5Test(); md5.TestMD5(input); } }
执行后如下图:
可以看出,“邱子豪”三个字,经过JAVA中MD5算法加密后是:3670cfbab80f4888d59a04d2a3daf3f9 ;当你拿到加密后的这个乱码,你是否还能想得出原来只是三个中文的加密数据吗?很有意思吧,大家可以自己试试。至于MD5加密的破解问题,那与我们并没有太大的关联,我们只要会用,拿这个进行网络安全方面进入更深的研究,还是有必要了解的。接下来的博客,我会抽时间再分享一些其他安全方面的介绍,请关注本人博客,记得评价点赞哦,我会一一回复评价的,祝大家周末愉快。
相关文章推荐
- JAVA安全篇网站登陆加密解密
- Java的安全学习(包括加密,数字签名,证书和认证)
- Java的安全学习(包括加密,数字签名,证书和认证)
- 安全检测Java Web应用网站漏洞(下)
- JavaTM安全体系结构 2
- java-信息安全(十三)-数字签名,代码签名【Java证书体系实现】
- Java/JSP安全及加密
- web网站视频安全-视频分片加密技术-云平台设置教程
- java安全架构____Hmac秘钥加密自己的摘要数据
- IIS网站—实战 SSL 安全加密机制
- Java安全(加密、摘要、签名、证书、SSL、HTTPS)
- Java的安全学习(包括加密,数字签名,证书和认证)
- 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获
- 站长把网站https加密不仅安全还可以提高排名
- java安全(加密、数字签名、数字证书、HTTPS协议)
- Java加密技术(十)Java证书体系的实现
- Java Security Architecture--Java安全体系技术文档翻译(五)
- Java安全加密
- com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“java
- IE8 浏览器访问网站时提示“您的 Java 版本不安全”附解决办法