1.MD5概念

md5的全称是md5信息摘要算法(英文:MD5 Message-Digest Algorithm ),一种被广泛使用的密码散列函数,可以产生一个128位(16字节,1字节8位)的散列值(常见的是用32位的16进制表示,比如:0caa3b23b8da53f9e4e041d95dc8fa2c),用于确保信息传输的完整一致。MD5由MD4、MD3、MD2改进而来,主要增强算法复杂度和不可逆性。MD5算法因其普遍、稳定、快速的特点,仍广泛应用于普通数据的加密保护领域。

md5将整个文件当做一个大文本信息,通过不可逆的字符串变换算法,产生一个唯一的MD5信息摘要。文件的md5类似于人的指纹,在世界上是独立无二的,如果任何人对文件做了任何改动,其md5的值也就是对应的“数字指纹”都会发生变化。

1996年后该算法被证实存在弱点,可以被加以破解,对于需要高度安全性的数据,专家一般建议改用其他算法,如SHA-2。2004年,证实MD5算法无法防止碰撞(collision),因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途。

2.代码实例

创建工具类

public class MD5Utils {public static String str2MD5(String str) throws NoSuchAlgorithmException, UnsupportedEncodingException {str += "@fdki11234568#fjen";byte[] digest = null;MessageDigest md5 = MessageDigest.getInstance("md5");digest = md5.digest(str.getBytes("utf-8"));//16表示转换为16进制String md5str = new BigInteger(1,digest).toString(16);return md5str;}//创建mian方法,进行测试/*  public static void main(String[] args) throws UnsupportedEncodingException, NoSuchAlgorithmException {System.out.println(str2MD5("123456"));}*/
}

在service进行密码加密处理

public class UserInfoServiceImpl implements UserInfoService {@Overridepublic UserInfo login(String loginName, String password) throws SQLException, UnsupportedEncodingException, NoSuchAlgorithmException {//登录密码加密处理password = MD5Utils.str2MD5(password);UserInfoDao userInfoDao = new UserInfoDaoImpl();UserInfo userInfo = userInfoDao.login(loginName, password);return userInfo;}@Overridepublic int register(UserInfo userInfo) throws SQLException, UnsupportedEncodingException, NoSuchAlgorithmException {//注册密码加密String pass = userInfo.getPassword();pass = MD5Utils.str2MD5(pass);userInfo.setPassword(pass);UserInfoDao userInfoDao = new UserInfoDaoImpl();int i = userInfoDao.register(userInfo);return i;}
}

密码加密技术(MD5)相关推荐

  1. 对数据库的密码加密:md5和bcryptjs

    文章问题导向 如何对密码进行加密?哪种方式更加安全? 如果你都有了答案,可以忽略本文章,或去nest学习导图寻找更多答案 密码加密 一般开发中,是不会有人直接将密码明文直接放到数据库当中的.因为这种做 ...

  2. 基于MATLAB的视觉密码加密技术

    欢迎关注工科男的Maltab学习日志,利用Mardown文本编辑器编写文章,全新排版升级,内容.代码内容.代码更简洁,搭配阿里云OOS存储服务器,图片.视频更加清晰,该公众号同时开通了视频号,工科男的 ...

  3. js的常见的三种密码加密方式-MD5、Base64、sha1加密详解总结

    写前端的时候,很多的时候是避免不了注册这一关的,但是一般的注册是没有任何的难度的,无非就是一些简单的获取用户输入的数据,然后进行简单的校验以后调用接口,将数据发送到后端,完成一个简单的注册的流程,那么 ...

  4. 计算机的加密技术是指,一、密码技术笔记-常见的密码加密技术

    1.什么是密码 说起密码,你首先想到的是什么?银行卡取钱时输入的密码.某平台登录时输入的密码......这或许是我们基于日常生活中最容易想到的密码.那么这些是密码吗?是也不是.举个栗子: 当我们去银行 ...

  5. 常见登录密码加密方式

    目录 1 常见的加密方式 1.1.可逆加密算法 1.1.1. 对称加密 1.1.2. 非对称加密 1.2.不可逆加密算法 1.3.Base64编码 2 密码加密的方式选型 2.1 MD5密码加密 2. ...

  6. 什么叫MD5,MD5通常做什么用处,为什么MD5不可逆,用做密码加密的时候仍然可能会被解密?

    这里是修真院后端小课堂,每篇分享文从 [背景介绍][知识剖析][常见问题][解决方案][编码实战][扩展思考][更多讨论][参考文献] 八个方面深度解析后端知识/技能,本篇分享的是: [什么叫MD5, ...

  7. php 挂马 密码123456,admin密码-常用密码加密md5值,123456,admin,admin888

    一 : 常用密码加密md5值,123456,admin,admin888 123456这个经md5算法加密之后是多少? 16位:49ba59abbe56e057 32位:e10adc3949ba59a ...

  8. python凯撒密码加密写入文件_Python用户名密码登录系统(MD5加密并存入文件,三次输入错误将被锁定)及对字符串进行凯撒密码加解密操作...

    #-*- coding: gb2312 -*-#用户名密码登录系统(MD5加密并存入文件)及对字符串进行凯撒密码加解密操作#作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/k ...

  9. C#中使用MD5对用户密码加密与解密

    C#中常涉及到对用户密码的加密于解密的算法,其中使用MD5加密是最常见的的实现方式.本文总结了通用的算法并结合了自己的一点小经验,分享给大家. 一.使用16位.32位.64位MD5方法对用户名加密 1 ...

最新文章

  1. RobotFramework+jenkins持续化集成及高级操作API
  2. 在SpringBoot项目中,自定义注解+拦截器优雅的实现敏感数据的加解密!
  3. django 1.8 官方文档翻译: 3-5-1 使用Django输出CSV
  4. 任务调度(三)——Timer的替代品ScheduledExecutorService简单介绍
  5. 常用的API函数汇总
  6. html网页自动提示框代码,多种网页弹出窗口代码
  7. 各种调试接口(SWD、JTAG、Jlink、Ulink、STlink)的区别
  8. 服务器dell安装黑苹果系统,Dell D630安装10.8黑苹果全套驱动
  9. 即时热榜——月薪3W+自媒体人的必备神器
  10. Cookie | Cookie的理论基础、Cookie中常用的方法
  11. 太空射击第14课: 玩家生命
  12. 重定向和CSFB返回场景优先ENDC选网介绍
  13. JAVA并发编程-synchronized-脏读
  14. 数字电路和模拟电路-6组合逻辑模块及其应用(上)
  15. Vuforia核心特征视频教程
  16. 20145233韩昊辰第二周实习实验报告
  17. 地产大佬潘石屹都开始学 Python 了...
  18. Java版本企业电子招标采购系统源码:营造全面规范安全的电子招投标环境,促进招投标市场健康可持续发展
  19. 蚂蚁金服Java岗三面(电面.现场面.HR面)经验总结和分享
  20. Takeown、Cacls、Icacls-文件、文件夹夺权用法

热门文章

  1. 高级shell编程笔记(第三十三章 杂项)
  2. 银行软开入职一周年分享
  3. React - Content
  4. react的SSR(2)
  5. SAP CO11N/CO15工单报工校验(最小齐套数)
  6. 赛扬处理器_两款还未官宣的10代赛扬出现在海外电商平台,赛扬首次拥有4MB三级缓存...
  7. oracle数据库查询近五年数据,Oracle数据库查询基本数据
  8. ppt转换成pdf工具
  9. CAD手机看图软件使用技巧:CAD快捷命令功能
  10. vscode报错之 对修饰器的实验支持功能在将来的版本中可能更改。在 “tsconfig“ 或 “jsconfig“ 中设置 “experimentalDecorators“ 选项以删除此警告。