1. MD5加密,常用于加密用户名密码,当用户验证时。

protected byte[] encrypt(byte[] obj){ try { MessageDigest md5 = MessageDigest.getInstance("MD5"); md5.update(obj); return md5.digest(); } catch (NoSuchAlgorithmException e){ e.printStackTrace(); } }

  2. SHA加密,与MD5相似的用法,只是两者的算法不同。

protected byte[] encrypt(byte[] obj) { try { MessageDigest sha = MessageDigest.getInstance("SHA"); sha.update(obj); return sha.digest(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } }

  3. RSA加密,RAS加密允许解密。常用于文本内容的加密。

import java.security.KeyPair;  import java.security.KeyPairGenerator;  import java.security.interfaces.RSAPrivateKey;  import java.security.interfaces.RSAPublicKey;  import javax.crypto.Cipher;  /** *//** * RSAEncrypt *  * @author maqujun * @see */ public class RSAEncrypt { /** *//** * Main method for RSAEncrypt. * @param args */ public static void main(String[] args) { try ...{ RSAEncrypt encrypt = new RSAEncrypt(); String encryptText = "encryptText"; KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA"); keyPairGen.initialize(1024); KeyPair keyPair = keyPairGen.generateKeyPair(); // Generate keys RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate(); RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic(); byte[] e = encrypt.encrypt(publicKey, encryptText.getBytes()); byte[] de = encrypt.decrypt(privateKey,e); System.out.println(encrypt.bytesToString(e)); System.out.println(encrypt.bytesToString(de)); } catch (Exception e) { e.printStackTrace(); } } /** *//** * Change byte array to String. * @return byte[] */ protected String bytesToString(byte[] encrytpByte) { String result = ""; for (Byte bytes : encrytpByte) { result += (char) bytes.intValue(); } return result; } /** *//** * Encrypt String. * @return byte[] */ protected byte[] encrypt(RSAPublicKey publicKey, byte[] obj) { if (publicKey != null) { try ...{ Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.ENCRYPT_MODE, publicKey); return cipher.doFinal(obj); } catch (Exception e) { e.printStackTrace(); } } return null; } /** *//** * Basic decrypt method * @return byte[] */ protected byte[] decrypt(RSAPrivateKey privateKey, byte[] obj){ if (privateKey != null){ try { Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.DECRYPT_MODE, privateKey); return cipher.doFinal(obj); } catch (Exception e){ e.printStackTrace(); } } return null; } }

转载于:https://www.cnblogs.com/tomcattd/p/3487967.html

Java中常用的加密算法MD5,SHA,RSA相关推荐

  1. 认证过程中常用的加密算法MD5、Base64

    在编程过程中,MD5加密算法和Base64编码都是十分常用的,那么MD5和Base64编码有什么作用和区别呢? 一.MD5 1)什么是MD5? MD5消息摘要算法(英语:MD5 Message-Dig ...

  2. java中常用的加密工具

    java中常用的加密工具 1. md5加密工具类 public class MD5Utils {private static final String hexDigIts[] = {"0&q ...

  3. java 中常用的类

    java 中常用的类 Math Math 类,包含用于执行基本数学运算的方法 常用API 取整 l  static double abs(double  a) 获取double 的绝对值 l  sta ...

  4. 动图 + 源码,演示 Java 中常用数据结构执行过程及原理

    最近在整理数据结构方面的知识, 系统化看了下Java中常用数据结构, 突发奇想用动画来绘制数据流转过程. 主要基于jdk8, 可能会有些特性与jdk7之前不相同, 例如LinkedList Linke ...

  5. java中常用的几种排序算法--常见笔试面试

    转载:http://blog.csdn.net/ygc87/article/details/7208082 以下列出Java中常用的几种排序算法,只是简单实现了排序的功能,还有待改进,望指教(以下均假 ...

  6. 数据结构中缀表达式转后缀表达式与后缀表达式的求值实训报告_动图+源码,演示 Java 中常用数据结构执行过程及原理...

    程序员的成长之路互联网/程序员/成长/职场 关注 阅读本文大概需要 3.7 分钟. 作者:大道方圆cnblogs.com/xdecode/p/9321848.html 最近在整理数据结构方面的知识, ...

  7. JAVA中常用的逻辑运算符_Java中常用的运算符

    运算符是一种"功能"符号,用以通知 Java 进行相关的运算,Java 语言中常用的运算符可分为如下几种: 算数运算符.赋值运算符.比较运算符.逻辑运算符.条件运算符. 一.算数运 ...

  8. java中常用的包、类、以及包中常用的类、方法、属性----sql和text\swing

    java中常用的包.类.以及包中常用的类.方法.属性 常用的包 java.io.*; java.util.*; java.lang.*; java.sql.*; java.text.*; java.a ...

  9. Java中常用的类,包,接口

    Java中常用的类,包,接口 包名 说明 java.lang 该包提供了Java编程的基础类,例如 Object.Math.String.StringBuffer.System.Thread等,不使用 ...

最新文章

  1. Windows上Mqtt服务器搭建与使用客户端工具MqttBox进行测试
  2. PHPstudy新版小P面板进行设置版本
  3. linux gcc 7.3.0安装,升级gcc到7.3.0
  4. Gerrit的用法及与gitlab的区别
  5. it跟java的区别_详细介绍JAVA和C++区别
  6. 软考系统架构师笔记-综合知识重点(四)
  7. Cosmos发起提案计划申请资助实施ATOM全面营销计划
  8. 在训练CNN时,loss稳定在log(类别数)
  9. 电容触摸屏驱动(Linux驱动开发篇)
  10. 计算机里没有硬盘 右下角有图标,电脑右下角显示硬盘图标怎么去掉<br?电脑 – 手机爱问...
  11. 基于UML的高校教务管理系统的设计与实现
  12. 2021-5-1 【PTA】【L1-6 不变初心数 (15 分)】
  13. Composer安装包
  14. C++实现的BP神经网络(代码与详解)
  15. Matlab新老版本的差别问题——CAGD课程设计
  16. [项目管理] 项目管理之需求管理
  17. U-boot 2016.11 代码结构 dra7xx
  18. java基础:Linux系统下GiB和GB的换算
  19. 软件工程-数据流图+ER图绘制听课笔记
  20. linux目录对应windows,linux目录和Windows目录对比

热门文章

  1. numpy reshape
  2. pandas基本操作函数
  3. vue向ifarm传值_vue组件间传值
  4. 在vSAN中存储ESXi核心转储和暂存分区(2074026)
  5. Java基础学习总结(50)——Java事务处理总结
  6. java mysql_num_rows_JAVA MYSQL sql_calc_found_rows和found_rows()实践
  7. git全局配置用户名和密码_git---全局设置用户名、密码、邮箱
  8. aliyun gradle 代理_android studio gradle国内代理设置
  9. linux下进程调度算法实验,Linux下进程调度算法的模拟实现.doc
  10. python 的 virtualenv 环境搭建及 sublime 手动创建运行环境