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

    大体上分为单向加密双向加密,双向加密又可分为对称加密和非对称加密
 
    所谓单向加密就是非可逆加密,就是不可解密的加密方法,由于其在加密后会生成唯一的加密串,故而经常用于检测数据传输过程中是否被修改。常见的单向加密有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. [BZOJ 5415] 归程

    一棵KrusKal重构树,然而我数组开小了,忘记清空一个标记 洛谷传送门 BZOJ传送门 ......好像成权限题了Orz 回顾我们用KrusKal做生成树的时候,我们将边排序后连通各个连通块,那么边 ...

  2. 栈 - 20 Valid Parentheses, 150 Evaluate Reverse Polish Notation

    class Solution { public: bool isValid(string s) { stack<char> st; ; i<s.size(); i++){ if(s[ ...

  3. 116th LeetCode Weekly Contest N-Repeated Element in Size 2N Array

    In a array A of size 2N, there are N+1 unique elements, and exactly one of these elements is repeate ...

  4. vue修改组件样式

    .el-date-editor /deep/ input{ padding-left:30px; } 改变引入的组件里面元素的样式: 1.去掉css内的scoped,但是这样会污染全局 2.加上/de ...

  5. Oracle分区表管理的一些笔记

    [转自] http://www.linuxidc.com/Linux/2011-07/38381.htm Oracle分区表的管理笔记(仅限于对普通表,即堆表的分区管理,IOT跟CLUSTER TAB ...

  6. h5列表页的性能优化

    //0.还原状态 caoke.loading=false $(".loadbtn").text("点击加载更多") //1 还没有任何数据的情况 if(data ...

  7. android上最多有多少个http连接?

    1.使用HttpUrlConnection能有几个 测试机器版本是5.1.1 个数 网络连接是否报错 写文件是否报错  1024  A/art: art/runtime/indirect_refere ...

  8. 转 LIST INCARNATION OF DATABASE

    incarnation在英文中是“化身”的意思. 那么在oracle中,它又是什么意思呢?有什么作用呢? 我们看一些基本概念 Current Incarnation(当前化身):数据库当前正在使用的化 ...

  9. oracle 基础知识(八)----Library Cache *

    一,介绍 Library cache是Shared pool的一部分,它几乎是Oracle内存结构中最复杂的一部分,主要存放shared curosr(SQL)和PLSQL对象(function,pr ...

  10. 03-struts2获得servetAPI

    1 原理 三个域合一的时候相同的键值对以小的域为准.ActionContext 对象创建:每次请求的时候都会创建一个与请求对应的 ActionContext 对象.ActionContext 销毁:请 ...