单向加密与双向加密

  • 双向加密是加密算法中最常用的,它将可以直接理解的明文数据加密为不可直接理解的密文数据,然后,在需要的时候,可以使用一定的算法将这些加密以后的密文解密为原来可以理解的明文。双向加密适合于隐秘通信,例如,用户在网上购物时,需要向网站提交信用卡密码,用户当然不希望自己的数据直接在网上明文传送,因为这样很可能被别的用户“偷听”,用户希望自己的信用卡密码是通过加密以后,再在网络传送,因此网站接收到用户的数据以后,通过解密算法就可以得到准确的信用卡账号。
  • 单向加密只能对数据进行加密,也就是说,没有办法对加密以后的数据进行解密。单向加密一般用于数据库中用户信息的加密(例如用户密码加密)。

MessageDigest(信息摘要)

Java中提供了MessageDigest类,用于实现单向加密较为简便。

     //信息摘要实现单向加密方法//参数:str是加密前的字符串,type是加密类型(MD5、SHA1、SHA-256、SHA-512)//返回值:加密后字符串public static String encrypt(String str, String type) throws NoSuchAlgorithmException {/** MD5、SHA1、SHA-256、SHA-512* */MessageDigest md = MessageDigest.getInstance(type);/** update方法负责加密* 字符串转字节数组:str.getBytes("编码格式")* */md.update(str.getBytes());/**获取摘要结果,加密后的数组* */byte[] bs = md.digest();/** 变为16进制,使用字符串进行拼接* */StringBuilder res = new StringBuilder();for (byte b : bs) {res.append(String.format("%02X", b));}return res.toString();}

测试

public static void main(String[] args) throws NoSuchAlgorithmException {String str = "helloworld";System.out.println("MD5加密结果:"+encrypt(str,"MD5"));System.out.println("SHA1加密结果:"+encrypt(str,"SHA1"));System.out.println("SHA-256加密结果:"+encrypt(str,"SHA-256"));System.out.println("SHA-512加密结果:"+encrypt(str,"SHA-512"));}

MessageDigest实现单向加密(MD5、SHA1、SHA-256、SHA-512)相关推荐

  1. java messagedigest_Java 自带的加密类MessageDigest类(加密MD5和SHA)

    转载 转载自:http://www.tuicool.com/articles/nMNVVj Java 自带的数据加密类MessageDigest(MD5或SHA加密) 说明: 在网站中,为了保护网站会 ...

  2. AES加密解密SHA1、SHA加密MD5加密

    AES加密解密 SHA1.SHA加密 MD5加密 二话不说马上附上代码: package com.luo.util; import java.io.UnsupportedEncodingExcepti ...

  3. 常用加密算法的Java实现(一) ——单向加密算法MD5和SHA

    1.Java的安全体系架构 1.1           Java的安全体系架构介绍 Java中为安全框架提供类和接口.JDK 安全 API 是 Java 编程语言的核心 API,位于 java.sec ...

  4. 什么是 SHA 加密? SHA-1 与 SHA-2

    安全哈希算法 (SHA) 是一种用于加密数据的哈希算法. 了解什么是 SHA.它的工作原理以及可用的不同类型对于任何在线企业来说都是必不可少的. 什么是 SHA 加密? 安全哈希算法 (SHA) 是美 ...

  5. java对sha1的解密_java 加密解密算法MD5/SHA1,DSA

    通常,使用的加密算法 比较简便高效,密钥简短,加解密速度快,破译极其困难.本文介绍了 MD5/SHA1,DSA,DESede/DES,Diffie-Hellman的使用. 第1章基础知识 1.1. 单 ...

  6. java md2_java中加密的实现方法(MD5,MD2,SHA)

    java中加密的实现方法(MD5,MD2,SHA) 实例代码:注释都很清楚, import java.security.MessageDigest; import javax.xml.bind.ann ...

  7. 巧用OpenSSL完成md2、md4、md5、rmd160、sha、sha1等的验证

    相信很多奋斗在运维战线的小伙伴们经常会遇到版本升级之类的问题.笔者之前所在的公司每次进行版本发布的时候都会附带MD5校验哈希值,每次升级之前一般都要核对MD5哈希值的,刚刚开始的时候对Linux并不是 ...

  8. python常用加密算法_python 三个常用加密 base64,md5,sha1

    做比赛的经常会用到这三个算法 今天集合在一起 [python] import hashlib import base64 s = 'justforfun' print s for i in range ...

  9. 常用的加密算法(md5,sha1,base64加密解密)使用

    import org.apache.commons.codec.digest.DigestUtils; import java.util.Base64; import java.util.Scanne ...

最新文章

  1. java代码的执行机制_关于java代码的执行机制
  2. 反应能力测试题_微笑抑郁的表现症状有哪些?你是否正在受微笑抑郁困扰?(内附测试题)...
  3. LeetCode每日一题: 最后一个单词的长度(No.58)
  4. 去中心化的 RTC 通信平台架构设计
  5. Ajax应用查询员工信息
  6. 自动初始化 git Bash脚本
  7. SpringBoot系列: 与Spring Rest服务交互数据
  8. 《Python游戏趣味编程》 第10章 拼图游戏
  9. 在硅谷谈AI不够有创意,到苹果开吐槽大会 | 跟着李开复去硅谷
  10. RT-Thread 4.0 + STM32F407 学习笔记1
  11. 搞懂分布式技术开篇:浅析分布式系统的架构及常用方案
  12. 牛逼程序猿的学习之路
  13. 诺贝尔奖离中国还有多远
  14. 计算机考试190,计算机考试题库:计算机考试模拟练习题(190)
  15. C语言中动态库/静态库的创建和使用
  16. Unreal 4 更改Engine位置
  17. 开发APP的java工具_程序猿必备的java的app开发工具有哪些
  18. DC-DC变换器(DCDC Converter / Switched-mode Power Supply)简介
  19. 【JAVA】-- 期末考试复习题含答案(每章对应题、选择、填空、简答、编程)(上)
  20. r5 5600u和r5 4600u参数对比哪个好?

热门文章

  1. 通过例子学TLA+(十四)--宏,过程与标签
  2. vue 表单验证,表格刷新问题
  3. JS三元运算符判断多个条件
  4. 弘辽科技:引爆店铺流量的淘宝关键词技巧
  5. 织梦上一篇下一篇没有了改为英文
  6. C/C++游戏开发:用C++打造曾经风靡的推箱子游戏,这个真有意思!
  7. 轻播zFuse Pro for Mac(万能视频播放器)
  8. JFrame与Frame的区别
  9. 编写自动化软件+python
  10. 仿ViewPager相册(使用HorizontalScrollView)