加密是用一种特殊的算法改变原有的数据,使未经授权的用户即使获得了已经加密的信息,但不知其解密的方法,仍然无法了解信息的内容。

    大体上分为单向加密双向加密,双向加密又可分为对称加密和非对称加密
 
    所谓单向加密就是非可逆加密,就是不可解密的加密方法,由于其在加密后会生成唯一的加密串,故而经常用于检测数据传输过程中是否被修改。常见的单向加密有MD5、SHA、HMAC。我们只是把他们作为加密的基础,单纯的以上三种加密并不可靠。
    
    所谓双向加密是可逆加密,采用秘钥进行加密和解密。包含对称加密和非对称加密对称加密是使用同样的秘钥进行加密和解密。非对称加密一般用两个秘钥完成加密解密,这两个秘钥是公开秘钥(公钥)和私有秘钥(私钥),公钥加密,私钥解密;私钥加密,公钥解密。
 
    BASE64严格的说,属于编码格式,而非加密算法。BASE64内容传送编码被设计用来把任意序列的8个字节描述为一种不易被人直接识别的形式。常用于邮件、http加密。
 
常见的单向加密:
 
    MD5(message-digest algorithm5)(信息-摘要算法)缩写,常用于文件校验,不管文件有多大,都能生成唯一的MD5值。
 
    SHA(Secure Hash Algorithm,安全三列算法),数字签名等密码学应用中的重要工具,被广泛用于的电商领域。虽然SHA和MD5都被碰撞法破解了,但SHA教MD5更为安全,是公认的安全算法。
 
    HMAC(HASH MESSAGE AUTHENTICATION CODE,散列消息鉴别码,基于秘钥的hash算法验证协议)。消息鉴别码实现的原理是:使用公开的函数和秘钥生成一个固定长度的值作为认证标识,用这个标识鉴别信息的完整性。使用一个秘钥生成固定大小的数据块,即MAC,并将其加入到消息中,然后传输。接收方与发送方共享秘钥进行鉴别认证等。
 
常见的双向加密:
 
    对称加密:DES、IDEA、RC2、RC4、SKIPJACK、RC5、AES等。
    
    非对称加密:RSA、DSA

java中加密的方式概述的更多相关文章

  1. 译:Java 中的正则表达式性能概述

    原文链接:https://www.baeldung.com/java-regex-performance 作者: baeldung 译者:Darren Luo 1. 概述 在本快速教程中,我们将展示模 ...

  2. Java中遍历HashMap方式

    本教程将为你展示Java中HashMap的几种典型遍历方式. 如果你使用Java8,由于该版本JDK支持lambda表达式,可以采用第5种方式来遍历. 如果你想使用泛型,可以参考方法3.如果你使用旧版 ...

  3. Java中CardLayout布局方式的应用

    import java.awt.CardLayout; import java.awt.Color; import java.awt.Container; import javax.swing.JBu ...

  4. Java中动态代理方式:

    JDK中生成代理对象的API 代理类所在包:java.lang.reflect.ProxyJDK实现代理只需要使用newProxyInstance方法,但是该方法需要接收三个参数,完整的写法是: st ...

  5. java中创建对象的方式

    Java中有5种创建对象的方式,下面给出它们的例子还有它们的字节码 使用new关键字 } → 调用了构造函数 使用Class类的newInstance方法 } → 调用了构造函数 使用Construc ...

  6. java中三种方式获得类的字节码文件对象

    package get_class_method; public class ReflectDemo { /** * @param args */ public static void main(St ...

  7. java中转换json方式(JSONArray,JSONObject),json解析

    package com.yunos.tv.video.resource.controller.web; import java.util.ArrayList; import java.util.Has ...

  8. java 中自定义类的概述

    作业: 描述商品类 Goods 4个属性 商品名字 大小 价格 库存 把商品类放进集合中 小米品牌 大小 价格 库存的数量 都存集合 华为..... 魅族 public class Goods{ St ...

  9. java中加密解密工具类

    在工作中经常遇到需要加密.解密的场景.例如用户的手机号等信息,在保存到数据库的过程中,需要对数据进行加密.取出时进行解密. public class DEStool { private String ...

随机推荐

  1. gevent 传参, 中文编码

    #coding=utf-8 import os from gevent import monkey,pool monkey.patch_all() import gevent import time ...

  2. EasyUI学习笔记(三)—— message和menubutton的使用

    一.message(消息框) 1.1 alert   <script type="text/javascript"> $(function () { // alert方 ...

  3. LCT小小结

    模板题P3690 基础题P3203[HNOI2010]弹飞绵羊 \(access\)是搞出一条端点为\(x,y\)的路径 , 且维护的是实子树的信息 . 由于题目比较简单 , \(access\)时还 ...

  4. HDU 6356 (线段树-l,r 之间小于val 的变val+单点求值)

    题目描述: 给你一个长度为n的最开始为0的数以及m个更新操作以及数据生成器参数X,Y,Z.每次操作,将由数据生成器生成出li,ri,vi.让你从区间[li,ri]中,将所有小于vi的数变为vi.最后让 ...

  5. indexOf获取字符位置

    先定义一个字符串: var aString = "you are beautiful,so beautiful,and i love you ver much"; 拿到第一个逗号的 ...

  6. Mocoserver使用介绍

    10.使用flask实现mock server 测试管理 基于思维导图的用例设计 https://www.ibm.com/developerworks/cn/web/1405_liugang_moco ...

  7. my31_MGR单写模式压测以及对比普通从库记录

    场景MGR单写模式三节点,db46写节点,db47/db48为读节点工具sysbencn.压测15个小时,db46上18线程纯写,12线程oltp混合测试,db48上12线程select在压测2个小时 ...

  8. Java中forEach, 用来遍历数组

    这里的for是Java中forEach, 用来遍历数组的.for(int i : d) 就是遍历int型数组d的 每一次访问数组d的时候读取的数据放入int型的i中.和for(int i=0;i< ...

  9. [转]JQuery控制div外点击隐藏,div内点击不会隐藏

    一直弄清楚这个效果如何实现,看了这篇博客的几行代码原来如此简单,就是利用了事件冒泡而已. 比如有个div其id为body,实现在div外点击隐藏,div内点击不隐藏,采用jQuery实现如下: $(& ...

  10. 数据库~大叔通过脚本生成poco实体

    今天在做开发时,需要把表映射成实体,又没有EF这种工具,就从网上下了一个工具,但使用时觉得太重了,所以就自己写了一个,基于mysql的. 功能:输入表名,得到这个表的poco实体 SELECT COL ...