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

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

    tornado 02 输出.输入和URL传参 一.输出 write输出到页面 #write可以接受的对象 #write() 可以接受3种对象:bytes Unicode字符(二进制字符) 字典 #如果 ...

  2. php opcache 详解

    PHP性能提升之OPcache相关参数详解 工具 memory 发布于December 15, 2016 标签: PHP OPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PH ...

  3. Django 中的中间件

    Django 中的中间件 Django  中间件 中间件介绍 前戏 之前在判断登录的时候使用的是装饰器的功能,通过给视图函数加装饰器来增加判断是否登录的功能.但此方法的缺点是必须给每个需要判断登录的视 ...

  4. 【算法笔记】B1031 查验身份证

    1031 查验身份证 (15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2 ...

  5. 栈和递归的关系 144:Binary Tree Preorder Traversal

    前序遍历:根左右 //用栈来实现非递归解法/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeN ...

  6. HDU - 4699 对顶栈

    Get到了全新O(1)替代部分伸展树功能的姿势 左栈stk1维护当前信息,右栈stk2维护历史删除信息 题目求的是严格的前缀和(且小于当前指针)那就每次左栈新增时再更新前缀和信息就好 即使把题面换成最 ...

  7. CFD

                                                        Were  it free , it would Soar , cloud Sky. 1. 明显 ...

  8. 自动判断文本文件编码来读取文本文件内容(.net版本和java版本)

    .net版本 using System; using System.IO; using System.Text; namespace G2.Common { /// <summary> / ...

  9. ThinkPHP vendor 方法导入第三方类库

    ThinkPHP 3.2 vendor()方法的深入研究及Phpqrcode的正确扩展 ThinkPHP vendor 方法导入第三方类库 第三方类库 第三方类库指除了 ThinkPHP 框架.应用项 ...

  10. 2.在centos7虚拟机搭建nginx网站

    1.nginx配置目录 cd /etc/nginx/conf.d/ 添加 vi www.18cat.conf server{ listen 80; server_name www.18cat.com; ...