精华内容
下载资源
问答
  • 对称加密和非对称加密例子
    千次阅读
    2019-09-27 02:12:56

    一、概念

    • 对称加密:
      采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。
    • 非对称加密:
      对称加密算法在加密和解密时使用的是同一个秘钥;而非对称加密算法需要两个密钥来进行加密和解密,这两个密钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。

    二、特点

    • 对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。
    • 非对称密码体制的特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。

    三、不同之处

    非对称加密和对称加密在加密和解密过程、加密解密速度、传输的安全性上都有所不同,具体介绍如下:

    1、加密和解密过程不同

    • 对称加密过程和解密过程使用的同一个密钥,加密过程相当于用原文+密钥可以传输出密文,同时解密过程用密文-密钥可以推导出原文。
    • 非对称加密采用了两个密钥,一般使用公钥进行加密,使用私钥进行解密。

    2、加密解密速度不同

    • 对称加密解密的速度比较快,适合数据比较长时的使用。
    • 非对称加密和解密花费的时间长、速度相对较慢,只适合对少量数据的使用。

    3、传输的安全性不同

    • 对称加密的过程中无法确保密钥被安全传递,密文在传输过程中是可能被第三方截获的,如果密码本也被第三方截获,则传输的密码信息将被第三方破获,安全性相对较低。
    • 非对称加密算法中私钥是基于不同的算法生成不同的随机数,私钥通过一定的加密算法推导出公钥,但私钥到公钥的推导过程是单向的,也就是说公钥无法反推导出私钥。所以安全性较高。
    更多相关内容
  • RSA非对称加密和DES对称加密代码示例包含(commons-lang3-3.1 commons-codec-1.4.jar)
  • 对称加密非对称加密

    千次阅读 2022-04-22 17:34:48
    一:对称加密 1:原理 通信双⽅使⽤同⼀个密钥,使⽤加密算法配合上密钥来加密,解密时使⽤加密过程的完全逆过程配合密钥来进⾏解密。 举个简单的例子: 按规则使⽤不同的⽂字来替换掉原先的⽂字来进⾏加密...

    一:对称加密

    1:原理

    通信双⽅使⽤同⼀个密钥,使⽤加密算法配合上密钥来加密,解密时使⽤加密过程的完全逆过程配合密钥来进⾏解密。

    举个简单的例子:

    按规则使⽤不同的⽂字来替换掉原先的⽂字来进⾏加密。
     
    码表:
    原始字符:ABCDEFGHIJKLMNOPQRSTUVWXYZ
    密码字符:BCDEFGHIJKLMNOPQRSTUVWXYZA
    
    原始书信:how are you
    加密书信:ipx bsf zpv
    解读后:  how are you

    加密算法:替换⽂字

    密钥:替换的码表

    以上的例子就是最简单的对称加密的实现。

    2:经典算法

    DES56 位密钥,密钥太短⽽逐渐被弃⽤)、AES128 位、192 位、256 位密钥,现在最流⾏)

    当然还有其他的算法,但这2种贵在金典。。

    3:对称加密作⽤

    加密通信,防⽌信息在不安全⽹络上被截获后,信息被⼈读取或篡改。

    4:对称加密的缺点

    密钥泄露:不能在不安全⽹络上传输密钥,⼀旦密钥泄露则加密通信失败

    二:非对称加密

    1:原理

    使⽤公钥(加密密钥)对数据进⾏加密得到密⽂;使⽤私钥(解密密钥)对数据进⾏解密得到原数据。公钥和私钥是不相同的,

                                                           图 2-1

    举个简单的例子(不用深究,但是足以体现非对称加密的最核心的原理,运用各种移位、溢出等算法):假如你遇到危险,这时候要发送个110求救,以防被截获咱们得给它加密一下

         原数据是: 110
             加密  +4  
    通过加密秘钥后: 554
             解密  +6和移位等
                    11 11 10
    通过解密秘钥后:   1  1  0

    2:使用场景

    进行网络通信,非对称加密是怎么做到可以在不安全的网络环境下进行安全的通信的呢

                                                                           图 2-2

    通信双方把加密秘钥给对方,然后双方怎么通信呢?图2-3中A通过B的加密秘钥加密数据后发给B,B就可以用B的机密秘钥进行解密,这样就实现的通信了。

           那像C也是可以获取到A、B的机密秘钥的,但是C没有A、B的解密秘钥,所以即使C获取的到秘文,也无法进行解密。但是C在拥有A/B的加密秘钥,那C不就可以冒充A、B进行传数据了吗,那要怎么保证传数据的那一方是实际数据来源方呢?在后面我们会进行讲解,继续往下

                                                                            图 2-3

                                                                            图 2-4

     图2-3和图2-4是一样的,从公钥的命名也可以知,公钥是可以公开的,但是私钥是一定要握在自己手上。很多时候公钥是可以通过私钥计算出来的,用的是椭圆曲线算法,比特币用的一种算法,所以如果拿到了私钥就等于同时拿到了公钥,可见私钥不能公开的必要性。

    公钥能不能解私钥?

    答案是能,可互相解

    签名和验证

    由于私钥和公钥互相可解,因此⾮对称加密还可以应⽤于数字签名技术。即用来证明发信息者的身份

                                                                         图 2-5

    图2-5原数据通过私钥加密后(签名),生成签名数据,那对方就可以通过对应的公钥进行解密(验证)。由于别人没有我的私钥,就无法造出我的数据,也就无法冒充我了

                                                                          图2-6                                              

    图2-6是比较标准的签名流程,会把原数据一起发送,这个是主要是为了验证方便

     加密+签名

     在实际的使用过程,常会对原数据hash以后对hash签名,然后附加在原数据的后⾯作为签名。这是为了让数据更⼩。

     加密+签名(完整)

    3:经典算法

    RSA(可⽤于加密和签名)、DSA(仅⽤于签名,但速度更快)

    三:Hash

    1:定义

    常会对原数据hash以后对hash签名,然后附加在原数据的后⾯作为签名。这是为了让数据更⼩。

    2:作⽤

    相当于从数据中提出摘要信息,因此最主要⽤途是数字指纹。

    3:实际用途

      数据完整性验证

    从⽹络上下载⽂件后,通过⽐对⽂件的Hash值(例如MD5、SHA1),可以确认下载的⽂件是否有损坏。如果下载的⽂件Hash值和⽂件提供⽅给出的Hash值⼀致,则证明下载的⽂件是完好⽆损的。

     唯⼀性验证

     如JAVA中验证,要重写hashCode()

    隐私保护

    当重要数据必须暴露的时候,有事可以选择暴露它的Hash值(例如MD5),以保障原数据的安全。

    例如⽹站登录时,可以只保存⽤户密码的Hash值,在每次登录验证时只需要将输⼊的密码的Hash值和数据库中保存的Hash值作⽐对就好,⽹站⽆需知道⽤户的密码。这样,当⽹站数据失窃时,⽤户不会因为⾃⼰的密码被盗导致其他⽹站的安全也受到威胁。

    加盐:由于彩虹表的存在,存储了很多常用密码对应的Hash值,这样就相当于破解了hash加密过的值,这时候加上一些自己特有的值一起hash,这样值就和直接Hash的值就不同了。

    快速查找

    HashMap

    经典算法

    MD5、SHA1、SHA256

    展开全文
  • AESRSA java实现
  • 以上学习所有内容,对称加密非对称加密、消息摘要、数字签名等知识都是为了理解数字证书工作原理而作为一个预备知识。数字证书是密码学里的终极武器,是人类几千年历史总结的智慧的结晶,只有在明白了数字证书工作...
  • 登录时,用户的密码用明文传输,太不安全,应该加密传输,怎么做呢,对称加密一旦秘钥丢失则形同虚设,最好使用非对称加密的方式,由后端事先生成公钥私钥,公钥发给前端页面,私钥后端自己保留,前端进行认证时,...
  • 非对称加密JAVA实现

    2020-08-06 12:50:58
    非对称加密JAVA实现,实现对超长内容进行加密
  • 一、对称加密 在密码学上,加密解密使用的是同一个秘钥的称为对称加密对称加密的秘钥一般比较短,小于256kbit, 当然,秘钥越大,安全性就更强,但是加密解密的过程耗时也就更长,其中权衡,取决于实际应用...

    一、对称加密

            在密码学上,加密和解密使用的是同一个秘钥的称为对称加密。对称加密的秘钥一般比较短,小于256kbit,

    当然,秘钥越大,安全性就更强,但是加密和解密的过程耗时也就更长,其中权衡,取决于实际应用场景。

    优点:计算量小,简单快速,适合于对海量数据进行加密处理;

    缺点:加密人和解密人需要拥有同一把秘钥,那秘钥如果通过 不安全的通道进行传输,就存在被黑客窃听的风险,安全性丧失;

                同时双方还需要好好管理秘钥,不能泄露秘钥,否则也不安全了,管理秘钥成本较高。

    常见对称加密算法: DES、AES、3DES、IDEA、Blowfish、RC4、RC5、RC6

    二、非对称加密

           非对称加密算法需要两个密钥:公共秘钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

    优点:消除了用户交换密钥的需要,安全性提高;

    缺点:加密、解密耗时较长;

    常见非对称加密算法:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法) 

    ps:所以在实际应用场景中,一般把 秘钥 采用非对称加密,数据采用对称加密。

    三、哈希算法(Hash)

    MD5和SHA。SHA又包括 SHA-1 和 SHA-2(SHA-224、SHA-256、SHA-384、SHA-512) 和SHA-3。

     

    1、MD5直接加密 ( Message-Digest Algorithm-信息摘要算法),种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。

    特点:a、压缩性:任意长度的数据,可以算出固定长度;

               b、不可逆:只有加密,没有对应的解密算法;

     

    //演示下在vue项目中使用MD5
    //step1 安装依赖
    npm install js-md5 -S
    
    //step2 在main.js 全局引入
    import md5 from 'js-md5';
    Vue.prototype.$md5 = md5;
    
    //step3 在逻辑中使用
    this.$md5('password');
    
    //实际开发中,可能整个项目只有登录的时候会用到MD5,这时建议采用单页面引用,安装依赖之后,在登录组件引入插件
    import md5 from 'js-md5';
    let pw = md5('password');//使用
    
    //在非vue项目中,下载好md5.js后使用script标签引入即可
    <script src="js/md5.js" type="text/javascript"></script>

    2、MD5加盐

           MD5直接加密虽然不可逆,但抵不住网上大把解密网站,通过事先存储各种字符组合的 Hash 加密结果,然后提供查询;即使是两层的 md5 加密也有可能通过彩虹表的方式进行破译,所以MD5直接加密已经不够安全,这时候就需要给密码加盐,以降低被破译的风险;加盐就是人为的通过一组固定字符或随机字符与用户原密码组合形成一个新的字符。

     let salt = '234gherh4jbvfdhbdfi#@$@2156&4$';//尽可能复杂
     let pw = this.$md5(salt+this.password); //pw就是加盐加密后的密码

    3、SHA-256

     SHA256算法使用的哈希值长度是256位。这是一个抽象类。此类的唯一实现是SHA256Managed;

    //step1 安装依赖 
    npm install js-sha256
    //step2 在组件中引入
    let sha256 = require("js-sha256").sha256;
    //step3 在方法中使用
    let pw = sha256(this.passWord)

    就像运送一车泥土不需要用到战备装甲车,运送一车钞票不能用拖拉机一样,前端加密的方式还有很多,要选择怎样的加密机制需要根据实际业务需求确定,适合的才是最好的。

    ps:这里简单介绍了前端加密,需要注意的是,对于用户密码而言,不能因为前端加密了,后端就直接把前端加密得到的字符串直接存储到数据库,这是很危险的,前后端都要进行加密!比如前端MD5加密之后,后端进行第二次md5加密后再把密码存进数据库,这样即使用户密码在传输过程中被窃听,黑客也无法进行登录,因为被窃听的密码和数据库存储的密码不匹配。

     

    ps:简单记录一下,若有不恰当之后,欢迎指正!

     

    展开全文
  • Java+js实现前后端非对称加密,采用rsa技术进行加密,前后端代码已上传,包括js文件,简单易懂。
  • 对称加密非对称加密深度解析

    千次阅读 2022-03-15 21:23:26
    * 对称加密: 加密密钥解密密钥相同 * 非对称加密: 加密密钥解密密钥不相同

    密码学的发展

    加密的发展史随着人类的进化逐步复杂、严谨也更安全,对于早期的移位和字母对应等加密方式我们不难理解。

    • 移位 : 比如恺撒密码, 简单点说将 26个英文字母的顺序打乱,得到一个新的字母顺序,之后的英文或是拼英组成的单词就无法直接看出是什么了。
    • 字母对应 :比如使用一个密码本, 原文通过对应的字母进行转换。

    后来出现了更高级的使用密钥的方式加密,加密和解密使用相同的密钥, 密钥越长,解密就越难。 到1976年出现了非对称加密。

    加密的分类

    按照密文是否可以被还原,可以将加密分为可逆加密和不可逆加密。严格意义上说,不可逆加密应该算不上加解密的范畴,但是实际开发过程中,还是会使用到使用不可逆加密的方法对某些信息进行加密,比如用户的登录密码。

    不可逆加密和可逆加密

    • 不可逆加密: 信息摘要和安全散列。将任意大小的原始数据变换成规定长度的输出,获取内容的数字指纹。算法比如MD5,SHA1,PBKDF2,bcrypt。
    • 可逆加密: 基于算法,可逆加密又分为对称加密和非对称加密。

    对称加密和非对称加密

    • 对称加密: 加密密钥和解密密钥相同
    • 非对称加密: 加密密钥和解密密钥不相同

    在对称加密中,密钥就是一个数字,长度越长, 破解越困难,加解密流程如下:
    在这里插入图片描述

    非对称加密有两个密钥,一个公钥一个私钥。 加密和解密使用不同的密钥。加解密流程如下:
    在这里插入图片描述

    除了公钥加密,私钥解密;也可以使用私钥加密,公钥解密。两者都有着实际的应用。

    • 公钥加密,私钥解密。主要用于通信
    • 私钥加密(签名),公钥解密(验证), 用于数字签名

    加密算法汇总

    不同的加密类型,对应的加密算法有:

    1. 基于算法的加密算法, 也称为古典加密算法, 比如base64, 比特币生成地址使用的base58。 这类算法对原始内容进行置换和替换得到密文, 安全性依赖于算法是否外泄。
    2. 对称加密算法。 加解密使用同一个密钥。算法常见的有DES、3DES、AES。安全性从依赖算法转向依赖于密钥。
    3. 非对称加密。 加解密使用同不同的密钥。常见算法:RSA, DH , ECC。
    对称加密非对称加密
    DES , AES ,3DES,PBERSA ,DH, ECC
    • DES已经被AES所取代

    对称加密算法

    1. DES , 数据加密算法
      DEA( Data Encryption Algorithm, 数据加密算法)。
    • 1997 年 DES标准正式发布, 分组长度64比特,其中8比特为奇偶校验位, 所以实际长度为56比特。

    DES密钥的实质长度是56比特(7个字节)。
    示例:

    • 二进制: 01010001 11101100 01001011 00010010 00111101 01000010 00000010
    • 十六进制:51 EC 4B 12 3D 42 02
    • 十进制:2305928028626269954

    可以使用两个DES密钥(DES-EDE2)和三个DES密钥(DES-EDE3)。DES-EDE2长度112比特(14个字节),DES-EDE3长度168比特(21字节)。
    示例:

    • DES-EDE2: 51 EC 4B 12 3D 42 03 30 04 D8 98 95 93 3F
    • DES-EDE3: 51 EC 4B 12 3D 42 03 30 04 D8 98 95 93 3F 24 9F 61 2A 2F D9 96
    1. AES
      密钥长度可以从128、192和256个比特中选择。

    2. PBE 基于口令的密码
      PBE ( Password Based Encryption, 基于口令的密码)。是一种基于口令生成密钥, 并使用该密钥进行加密的方法。
      加密和解密使用的是同一个密钥。

    • 如同饭菜上加盐会改变饭菜的味道, 口令中加盐会改变生成的KEK值。

    • KEK (Key Encryting Key,密钥加密密钥), 将盐和口令通过单向散列函数, 得到的散列值就是用来加密密钥的密钥。

    在Java语言中使用PBE 加密可以参考:
    Java使用PBE算法进行对称加解密最简入门和示例

    非对称加密的理解

    非对称加密来源于数学中的大质因数分解很难的问题,基于欧几里得的证明, 每个数只有一种质因数分解, 一个大整数分解成一堆质数很难。
    理解非对称加密, 需要回顾一下下面的数学概念:

    • 素数:又称质数,指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。
    • 互质,又称互素。若N个整数的最大公因子是1,则称这N个整数互质。
    • 模运算即求余运算。比如 10%3 , 10除以3的余数是1, 所以求模的结果是1。
    • 欧拉函数

    任意给定正整数n,请问在小于等于n的正整数之中,有多少个与n构成互质关系?
    计算这个值的方法就叫做欧拉函数,以φ(n)表示

    举例来说:
    对于一个很小的数 7, 分解为两个质因数的乘积很容易。但是对于一个大一点的数 589 就很难直接得到答案了(589 =19*31),如果一个更大的数呢?比如54225。
    以RSA算法为例,公钥与私钥虽然是一对密钥,但密钥值不同,这对密钥值的生成就建基于大素数的乘积与分解上。

    如果上面对非对称加密还不够了解的话,也可以从颜色的角度理解非对称加密的公私钥。

    颜色的比喻

    混合颜色是一个单向函数, 两个颜色混合输出第三种颜色很简单, 但是反过来就很难。

    首先了解一下什么是互补色:每个颜色都有一个互补色,两个互补色叠加得到白光。

    • 张三选了两个互补的颜色, 将其中一个作为公钥发给李四
    • 李四选了一个颜色, 他将这个颜色和张三混合色的颜色发给张三
    • 张三使用自己保留的颜色,叠加到李四的混合色上面。就得到了李四的颜色。
      即使李四混合后的颜色被别人知道了, 也很难破译出李四的颜色。

    对称加密和非对称加密的优缺点和应用

    • 对称加密速度快
    • 非对称加密更安全

    非对称加密在实际中会结合对称加密使用。常用的使用非对称算法获得共享密钥,使用对称加密处理数据。这也是https 采用的方式。

    展开全文
  • 对称加密和非对称加密的区别

    千次阅读 2021-09-28 09:56:31
    1、区别:加密一般分为两种,对称加密和非对称加密对称加密就是加密解密都用同一个秘钥,比如DES、3DES(TripleDES)和AES等。 非对称加密就是加密和解密不是用的同一种秘钥,比如RSA算法、DSA算法、ECC算法、DH...
  •  图1 用对称和非对称相结合的加密算法变换密钥的方法举例(首先产生一个 加密的动态对称密钥,然后用非对称加密算法在两个实体问进行变换, 产生和交换密钥对的非对称加密算法是事先单独进行的未在图中示出) ...
  • 本加密软件支持对称加密(AES、SM4)、非对称加密(RSA、SM2)、文件哈希(SHA2、SHA3系列); 支持系统:win10 x64 平台,其他平台未测试,但需要 64 位 Windows 操作系统
  • 自己整理的非对称加密demo,包含生成秘钥文件、生成字符转秘钥两种方式。
  • 对称加密:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6AES 非对称加密:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)
  • 第一 对称加密对称加密是指,加密方和解密方使用同样的秘钥来进行加密解密。在对称加密算法中,数据发信方将明文(原始数据)加密密钥(mi yue)一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去...
  • 非对称加密算法RSA的matlab实现,包含加密函数解密函数,功能齐全!
  • 目录 一、对称加密(Symmetric Cryptography) 优缺点 二、非对称加密(asymmetric Cryptography) ...非对称加密算法使用了一对密钥,公钥与私钥,所以安全性高,但加密与解密速度慢,解决加密解密慢的...
  • Https的加密过程 / 对称加密和非对称加密

    千次阅读 多人点赞 2018-12-24 11:21:00
    client请求服务端(指定SSL版本和加密组件) server返回CA证书+公钥 client用机构公钥认证server返回的CA证书上的签名是否正确 client生成一个密钥R,用公钥对密钥R加密发送给server server用服务器的私钥解密...
  • 对称加密和非对称加密详解

    千次阅读 2020-08-18 15:25:10
    二、非对称加密(Asymmetric Cryptography) 三、总结 一、对称加密(Symmetric Cryptography) 对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key...
  • 文章目录前言数字签名对称加密非对称加密数字签名数字证书参考资料 前言 最近需要实现一个艺术品买卖交易平台。由于安全性的需求,学习了各种加密方法。这里总结一下。 数字签名 Alice要Bob互传消息,消息在公开的...
  • 对称加密非对称加密、公钥、私钥究竟是个啥?

    千次阅读 多人点赞 2020-06-07 23:29:20
    世界上有没有不能破解的密码或加密方式?还真有一种,叫做一次性密码本,这时唯一一种不能破解的加密方式,而其他的密码只要时间无限理论上都是可破解的,如果你也对加密这个领域感兴趣,可以简单了解下这些概念...
  • 在计算机信息安全领域,经常应用到MD5、对称加密、非对称加密。...随着人们对加密强度需求的不断提高,近期出现了很多...对称加密和非对称加密有哪些优缺点,MD5是对称加密还是非对称加密?本文将对这些问题进行梳理。...
  • 对称加密和非对称加密的特点

    千次阅读 2021-09-17 08:34:52
    对称加密:DES:数据加密标准,速度较快,适用于加密大量数据...非对称加密:RSA:是一个支持变长密钥的公共密钥算法,需要加密的文件长度也是可变的。 DSA:数字签名算法,是一种标准的数字签名标准。 ECC:椭圆...
  • AES 三重AES 非对称密钥加密解密等

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 117,893
精华内容 47,157
热门标签
关键字:

对称加密和非对称加密例子