java加密MD5实现及密码验证代码实例
这篇文章主要介绍了java加密MD5实现及密码验证代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
MD5算法具有以下特点:
1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
2、容易计算:从原数据计算出MD5值很容易。
3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。除了MD5以外,其中比较有名的还有sha-1、RIPEMD以及Haval等。
package test; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import org.junit.Test; public class Teste { @Test public void testMd5() { System.out.println(encrypt("1234567")); } @Test public void testlogin() { String password = encrypt("123456adfaf"); if(encrypt("123456adfaf").equals(password)) { System.out.println("密码正确"); } else { System.out.println("密码错误"); } } private String encrypt(String password) { String passwordMd5 = null; try { MessageDigest md5 = MessageDigest.getInstance("MD5"); byte[] bytes = md5.digest(password.getBytes("utf-8")); passwordMd5 = toHex(bytes); } catch (NoSuchAlgorithmException | UnsupportedEncodingException e) { e.printStackTrace(); } return passwordMd5; } private static String toHex(byte[] bytes) { final char[] HEX_DIGITS = "0123456789ABCDEF".toCharArray(); StringBuilder ret = new StringBuilder(bytes.length * 2); for (int i=0; i<bytes.length; i++) { ret.append(HEX_DIGITS[(bytes[i] >> 4) & 0x0f]); ret.append(HEX_DIGITS[bytes[i] & 0x0f]); } return ret.toString(); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Java后端产生验证码后台验证功能的实现代码
直接跳severlet在java后台生成验证码: @RequestMapping(value="yzm.action") public void Yzm(HttpSession session,HttpServletResponse resp){ // 验证码图片的宽度. int width = 60; // 验证码图片的高度. int height = 20; // 验证码字符个数 int codeCount = 4; int x = 0; // 字体高度 int fontHeigh
-
java实现发送短信验证码
最近用学习了一下调用第三方接口发送短信验证码的程序,希望能够帮助到大家. 1.首先下图为项目的目录结构,需要带入三个包: commons-httpclient-3.1.jar commons-logging-1.0.4.jar codec-1.3.jar 2.其次要创建模拟POST.GET请求的工具类: package com.demo.util; import java.io.IOException; import java.util.Map; import org.apache.common
-
Java使用正则表达式验证用户名和密码的方法
要求: 用户名: 必须是6-10位字母.数字.下划线(这里字母.数字.下划线是指任意组合,没有必须三类均包含) 不能以数字开头 密码: 必须是6-20位的字母.数字.下划线(这里字母.数字.下划线是指任意组合,没有必须三类均包含) 效果展示: package cn.zyq.Aug05; import java.util.Scanner; public class Demo1 { public static void main(String[] args) { Scanner sc = new S
-
Java常用工具类 Random随机数、MD5加密工具类
本文实例为大家分享了java常用工具类的具体代码,供大家参考,具体内容如下 Random随机数工具类 package com.jarvis.base.util; import java.util.Random; /** * * * @Title: RandomHelper.java * @Package com.jarvis.base.util * @Description: 随机数工具类 * @version V1.0 */ public class RandomHelper { /** *
-
java利用Apache commons codec进行MD5加密,BASE64加密解密,执行系统命令
编写代码之前先来介绍一下我们要用到的两个包; commons-codec-1.10.jar Commons项目中用来处理常用的编码方法的工具类包,例如DES.SHA1.MD5.Base64,URL,Soundx等等. commons-exec-1.3.jar Apache Commons Exec 是 Apache 上的一个 Java 项目,提供一些常用的方法用来执行外部进程 你可以到本站直接下载 Apache Commons 官方包 下面看一下代码结构: import org.apache.c
-
Java使用@Validated注解进行参数验证的方法
目前项目中大部分代码进行参数验证都是写代码进行验证,为了提升方便性和代码的简洁性,所以整理了下使用注解进行参数验证.使用效果如下: // 要验证的实体类 @Data public class User implements Serializable { @NotBlank(message = "id不能为空!",groups = Update.class) protected String id = ""; @NotBlank(message = "商户i
-
java用户名密码验证示例代码分享
类:NameII 权限:public方法:main 权限:public 参数:name,password,denglu,i;参数介绍:name,数据类型 String ,用来存储一个从 input 中获取的值,在本程序当中用作用户名的存放:password,数据类型 String ,用来存储一个从 input 中获取的值,在本程序当中用作密码的存放:denglu,数据类型 boolean,用来存储默认账户的登录状态,true 表示登录成功,false 表示尚未登录:i,数据类型 in
-
JAVA中使用MD5加密实现密码加密
1.新建Md5.java package com.loger.md5; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import sun.misc.BASE64Encoder; public class Md5 { /**利用MD5进行加密*/ public String Encoder
-
javaWeb使用验证码实现简单登录
本文实例为大家分享了javaWeb使用验证码实现简单登录的具体代码,供大家参考,具体内容如下 简单的流程图 1.用户给第一次访问login.jsp页面时,会想服务器发送两个请求,一个请求是显示图片,还有一个是显示表单 2.第一个请求发送后 服务器中verifyServlet处理,随机生成验证码图片,并保存到session中,然后响应给客户端 3.第二个请求后 服务器LoginServlet处理,获取表单验证码,以及session中的验证码,再判断两个验证码是否相等,相等就向下执行即 succes
-
java加密MD5实现及密码验证代码实例
这篇文章主要介绍了java加密MD5实现及密码验证代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 MD5算法具有以下特点: 1.压缩性:任意长度的数据,算出的MD5值长度都是固定的. 2.容易计算:从原数据计算出MD5值很容易. 3.抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别. 4.强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的. MD5的作用是让大容量
-
JavaScript实现身份证验证代码实例
这篇文章主要介绍了JavaScript实现身法证验证代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 function isIdCardNo(num) { num = num.toUpperCase(); //身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X. if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num))) { //alert(
-
java基于poi导出excel透视表代码实例
这篇文章主要介绍了java基于poi导出excel透视表代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 从前,我是一个前端程序猿,怀着对打通任(前)督(后)二(开)脉(发)的梦想转了后端,自学两礼拜java+spring全家桶,直接上项目实战.最近接到一需求:将业务数据导出一张透视表. 需求开发完成已近有一段时间了,甲方的大爷大妈,爷爷奶奶们也都用的很开心,我也很开心,于是就心想咱学了也不能白学,所以写下这篇随笔. 先看下用easypo
-
Java判断主机是否能ping通代码实例
这篇文章主要介绍了Java判断主机是否能ping通代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码实现如下: import java.io.IOException; import java.net.InetAddress; import java.net.UnknownHostException; /** * Created by Miracle Luna on 2019/12/10 */ public class PingUtil
-
Java返回分页结果集的封装代码实例
这篇文章主要介绍了java返回分页结果集的封装代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下 package com.leyou.common; import java.util.List; public class PageResult<T> { private long total;//总条数 private Integer totalPage;//总页数 private List<T> list; publ
-
Spring Boot中整合Spring Security并自定义验证代码实例
最终效果 1.实现页面访问权限限制 2.用户角色区分,并按照角色区分页面权限 3.实现在数据库中存储用户信息以及角色信息 4.自定义验证代码 效果如下: 1.免验证页面 2.登陆页面 在用户未登录时,访问任意有权限要求的页面都会自动跳转到登陆页面. 3.需登陆才能查看的页面 用户登陆后,可以正常访问页面资源,同时可以正确显示用户登录名: 4.用户有角色区分,可以指定部分页面只允许有相应用户角色的人使用 4.1.只有ADMIN觉得用户才能查看的页面(权限不足) 4.2.只有ADMIN觉得用户才能查
-
SpringBoot Shiro配置自定义密码加密器代码实例
shiro主要有三大功能模块: 1. Subject:主体,一般指用户. 2. SecurityManager:安全管理器,管理所有Subject,可以配合内部安全组件.(类似于SpringMVC中的DispatcherServlet) 3. Realms:用于进行权限信息的验证,一般需要自己实现. 细分功能 1. Authentication:身份认证/登录(账号密码验证). 2. Authorization:授权,即角色或者权限验证. 3. Session Manager:会话管理,用户登录
-
基于JAVA的短信验证码api调用代码实例
本文实例为大家分享了JAVA的短信验证码api调用代码,供大家参考,具体内容如下 import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import jav
-
解读ASP.NET密码强度验证代码实例分享
效果如下: 输入密码:密码强度: 弱 中 强 代码如下: 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu
-
jQuery+ajax实现修改密码验证功能实例详解
废话不多说了,直接给大家贴代码了,具体代码如下所示: <script type="text/JavaScript"> //获取url中的参数 $(function(){ var userName = window.location.href; var aa = userName.indexOf("="); console.log(userName); if (aa == -1) return ""; userName=userName
随机推荐
- Redis集群搭建全记录
- 详谈swift内存管理中的引用计数
- Vue实现动态响应数据变化
- java 使用JDBC构建简单的数据访问层实例详解
- 用方法封装javascript的new操作符(一)
- Delphi实现毫秒级别的倒计时实例代码
- Vue项目中quill-editor带样式编辑器的使用方法
- 详解利用nginx和docker实现一个简易的负载均衡
- PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function
- 详解Python文本操作相关模块
- 文件备份vbs脚本
- jQuery构造函数init参数分析续
- jquery checkbox 勾选的bug问题解决方案与分析
- 代码分析jQuery四种静态方法使用
- 可编辑下拉框的2种实现方式
- 详解IIS中URL重写工具的匹配URL-规则模式(rule patterns)
- 不错的一篇3389使用相关技巧
- IMAIL系统修改IP地址的处理方法
- apache配置开启网站服务步骤
- Java transient关键字使用小记