精华内容
下载资源
问答
  • 2021-03-18 11:50:10

    一、概述

    加密分为单向加密双向加密

    单向加密 又称为不可逆加密,即生成密文无法反解的一种加密方式;eg:MD5和SHA系列、HMAC。
    双向加密 又称为可逆加密,即生成密文后,在需要的时候可以反解为明文;eg:RSA、AES、DES系列。

    双向加密又包括非对称加密对称加密

    对称性加密算法:也称单密钥加密。对称式加密就是加密和解密使用同一个密钥。
    信息接收双方都需事先知道密匙和加解密算法且其密匙是相同的,之后便是对数据进行加解密了。对称加密算法用来对敏感数据等信息进行加密。
    非对称算法:非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为"公钥"和"私钥",两个必需配对使用。

    另外:Base64不是安全领域下的加解密算法,只是一个编码算法,通常用于把二进制数据编码为可写的字符形式的数据,特别适合在http,mime协议下的网络快速传输数据。UTF-8和GBK中文的Base64编码结果是不同的。采用Base64编码不仅比较简短,同时也具有不可读性,即所编码的数据不会被人用肉眼所直接看到,但这种方式很初级,很简单。Base64可以对图片文件进行编码传输。这是一种可逆的编码方式。编码后的数据是一个字符串,其中包含的字符为:A-Z、a-z、0-9、+、/,共64个字符(26 + 26 + 10 + 1 + 1 = 64,其实是65个字符,“=”是填充字符。

    二、区别

    1、单向加密常用的算法

    • MD5:MD5摘要算法。数字摘要算法也被称为哈希算法、散列算法。无论是多长的输入,MD5 都会输出长度为 128bits 的一个散列值(通常用 16 进制 表示为 32 个字符)。

    2、对称加密:

    优点:对称加密算法使用同一个密匙加密和解密,速度快,适合给大量数据加密。
    缺点:对称加密客户端和服务端使用同一个密匙,存在被抓包破解的风险;需要大量钥匙,秘钥管理负担。
    常用的算法

    • DES:密钥长度可为128、192、256位 也就是16字节、24字节、32字节,DES是一种分组加密技术;
    • AES:密钥长度64位 ,也就是8字节,相比较有更高速度和资源使用效率,高级加密标准,是下一代的加密算法标准,速度快,安全级别高;

    3、非对称加密:
    优点:非对称加密算法使用公钥加密,私钥解密,私钥签名,公钥验签。安全性高,私钥留一方保管,不要外泄,公钥交给请求方。
    缺点:速度较慢。
    常用的算法

    • RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的。
    • Elgamal
    • 背包算法
    • Rabin
    • DSA:数字签名算法,是一种标准的 DSS(数字签名标准)
    • Ecc:椭圆曲线密码编码学。ECC和RSA相比,相同的密钥长度,其抗攻击性要强很多倍。计算量小,处理速度快。ECC总的速度比RSA、DSA要快得多。存储空间占用小。

    大量数据加密建议采用对称加密算法,提高加解密速度;小量的机密数据,可以采用非对称加密算法。

    4、密钥:
    选定了加密方式后,如何选择密钥:一般密钥越长运行速度越慢,所以根据实际需要的安全级别选择:一般RSA建议1024位的数字,ECC用160位,AES用128即可。

    了解更多参考:https://blog.csdn.net/baidu_22254181/article/details/82594072

    更多相关内容
  • 主要介绍了java实现的RC4加密解密算法,结合具体实例形式分析了java RC4加密解密算法的实现与使用技巧,需要的朋友可以参考下
  • 使用C++实现的300中加解密算法集合,需要锻炼算法的可以看一下,练习练习
  • 本程序用于对凯撒密码的加解密,其中更是包含了,不需要密钥的暴力破解法,效率挺不错。
  • 该工具为算法集成验证工具,可以验证开发者实现的des、ECC、RSA、SM2、HASH、AES等算法正确性
  • DelphiXE10.3与Java互通AES加解密算法,亲测可用。支持ECB、CBC算法,支持128、192、256密匙长度,支持密匙和向量设置,支持补码方式PKCS5和PKCS7,支持16进制密文和Base64密文。
  • rc4加密解密算法

    2019-02-21 09:32:12
    rc4的c++算法实现,包含加密解密过程的完整代码,简单的实现了rc4
  • 300多种加密解密算法(C++)源代码 300多种加密解密算法(C++)源代码
  • 基于STM32的软件加解密算法,包括DES,3DES的ECB,CBC模式。但是验证时CBC模式的初始向量为0时,数据的加解密正确,但是初始向量不为0时,则加解数据有错误。 注意:经测试DES,3DES的CBC模式初始向量不为0时,加...
  • 支持国密国际算法的小工具,与金融数据加密机算法一致。包括SM4、SM2、SM3、AES、RSA,支持对称加解密,非对称签名验签、加解密等。
  • 易语言常用加解密算法模块源码,常用加解密算法模块,AES_128,AES_192,AES_256,RC6,Blowfish,DESEncrypt,DESDecrypt,RC6Init,RC6Encrypt,RC6Decrypt,BlowfishInit,BlowfishEncrypt,BlowfishDecrypt,RijndaelInit,...
  • 加密解密算法工具集

    热门讨论 2018-05-17 18:47:32
    自己写的非常强大的一个加密解密工具,有DES、3DES(含ECB和CBC)、RSA、SHA1、SHA256、SHA512、MD5、CRC、base64、异或运算等
  • 主要介绍了JAVA加解密算法的的相关资料,文中讲解非常详细,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
  • 关于祖冲之加密解密算法(C语言实现)含文档(英文)
  • NBCII随机加解密算法V5版.rar
  • 用ENGINE替换OPENSSL中的加解密算法,廖德强,迟忠先,在使用OPENSSL进行加解密开发时,会用到一些特殊目的的算法,但这个算法往往在OPENSSL加解密库中无法找到。本文介绍一种利用ENGINE加载�
  • C++ DES加解密算法

    2015-08-12 11:25:57
    C++ DES加解密算法,含demo,经验证可用
  • 主要介绍了Java实现DES加解密算法解析,结合完整实例形式分析了DES加密的相关原理,需要的朋友可以参考下。
  • 各种加解密算法c++源码,AES,DES,RSA512,RSA1024,RSA2048,SHA等等
  • aes加解密算法,支持ECB,CFB,CBC三种模式,支持不同密钥长度,加解密字符串,加解密文件,C++实现,
  • C语言的DES加解密算法

    2018-12-17 09:16:50
    C语言的DES加解密算法,经过多个项目验证,可用于单片机和PC
  • 加解密算法概述

    2021-02-28 09:59:10
    本文概述对称加解密,非对称加解密,以及比较应用

    加解密算法概述

    前言

    密码由来已久,相传公元前405年,雅典和斯巴达之间的伯罗奔尼撒战争最早出现密码,通过杂乱无章的字母拼接成一段话就是要传递的情报。近代战争中敌我双方总会拦截对方的电报,进行破译来获取情报。密码的传输就涉及到对数据内容的加密和解密,双方商量好加解密的方式,一方通过规定对传输的内容加密,另一方获取到密文以后根据规则进行解密,就能获取到对方要传输的真实内容,而其他人并不知道他们双方的约定,所以中途即使拦截拿到了密文也不知道真正要表达的意思,这样保证传输内容的安全。现在有了专门的学科——密码学,研究编制密码和破译密码的技术。

    如今是互联网信息时代,每时每刻都有非常庞大的数据在网络中传输,有些敏感的数据需要进行加密来保证安全,比如:用户名密码,必须要进行加密处理,否则被其他人获取了会对造成不可估量的损失。


    概述

    加解密算法

    加解密算法一般分为:对称加密算法非对称加密算法

    对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法。有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来。而在大多数的对称算法中,加密密钥和解密密钥是相同的,所以也称这种加密算法为秘密密钥算法或单密钥算法。它要求发送方和接收方在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,所以密钥的保密性对通信的安全性至关重要。

    在这里插入图片描述

    非对称加解密需要两个密钥,分别为:公钥 (publicKey) 和 私钥 (privateKey)。公钥和私钥是成对的,可以使用其中一个密钥进行加密,另外一个进行解密。

    在这里插入图片描述

    国密算法

    上面提到的几种算法属于国际算法,是美国安全局NSA制定的一系列商用算法,用于加密不涉及国家秘密内容,但是也具有一定价值的数据加密算法,例如政务信息、公司内部资料等。我们国内也有自己的算法,称为国密算法,国密算法是国家密码管理局制定的标准的一系列的算法。主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位,按照分类也分为对称加密算法、非对称加密算法、摘要加密算法等。

    • SM1 为对称加密。其加密强度与 AES 相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。采用该算法已经研制了系列芯片、智能 IC卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。

    • SM2 为非对称加密,基于 ECC。该算法已公开。由于该算法基于 ECC,故其签名速度与秘钥生成速度都快于 RSA。ECC 256位( SM2采用的就是 ECC 256位的一种)安全强度比 RSA 2048位高,但运算速度快于 RSA。

    • SM3 消息摘要。可以用 MD5 作为对比理解。该算法已公开。校验结果为256位。

    • SM4 无线局域网标准的分组数据算法。对称加密,密钥长度和分组长度均为128位。

    应用

    总体

    对称加解密,顾名思义就是通过已知密钥对数据进行加密,再用同一个密钥对数据解密即可,适合任意数据加解密,例如:字符串,文件等。实现比较简单,加解密计算量小,运算速度比较快,但是因为加密和解密使用同一个密钥,如果此密钥泄露,那么其他人就可以轻松破译密文,对密钥的存储安全性要求高,避免密钥泄露。

    非对称加解密,就是加密和解密使用不同的密钥,分别为公钥和私钥。与对称加解密相比,实现更复杂,安全性更高,但是加解密计算复杂,速度相应的也就比较慢,特别是大文件加密传输。而且非对称加解密算法可以应用与信息加解密,登录认证,数字签名,数字证书等方面。

    对称加解密和非对称加解密各有优缺点,各应用可以根据自身合理选择,也可以组合使用,比如大文件传输可以通过非对称加解密对对称加解密的密钥进行加密,文件数据通过对称加解密完成,其中需要考虑的是对称加解密密钥的存储,传输方式。

    对称加解密

    对称加解密常用的有 SM4、AES、3DES、DES

    DES 加解密算法是最古老的算法之一,使用56位密钥,适合简单应用,安全要求不高的应用使用,由于其密钥长度短,现代计算机已经可以暴力破解了。

    3DES 加解密算法是 DES 的加强版,它将 DES 算法三次应用于每个数据块,比 DES 密钥相对更长,采用128位密钥,安全性更高,但是计算速度相对比较慢,之前广泛应用于金融行业支付系统,但是目前研究人员也发现 3DES 存在安全漏洞,美国国家标准技术研究院在2019年发布的指南草案中宣布弃用该算法。

    AES 加解密算法即高级加密标准,采用分组加密体制,相比 DES,3DES 加解密算法,安全性更高,速度更快,而且密钥长度可采用128位,192位以及256位,但是一般使用128位,若使用256位密钥会受到 jdk 的限制。目前 AES 是广泛应用的对称加解密算法,包括:无线网络安全、处理安全性和文件加密、SSL 和 TLS 协议、Wi-Fi 安全性、移动应用加密、VPN (虚拟专用网) 等。

    SM4 是在2021年已经被我国国家商用密码管理局确定为管家密码行业标准,在国内广泛使用在 WAP 无线网络标准中,还有政府系统的数据传输加密。

    非对称加解密

    非对称加解密常用的有 SM2、RSA

    RSA 加解密算法是迄今为止,最广泛的非对称加解密算法,它的效力在于它依赖的 “素数分解” 方法。基本上,此方法涉及两个巨大的随机质数,并将这些数字相乘以创建另一个巨数。这里的难题是从这个巨大的乘法数确定原始素数。事实证明,对于当今的超级计算机,这个难题实际上是不可能的。2010年,一组研究人员进行了研究,他们花费了超过1500年的计算时间(分布在数百台计算机上)来破解 RSA-768 位密钥,远低于使用的标准2048位 RSA 密钥今天。足见 RSA 加解密算法安全性之高,但是它同样具有非对称加解密算法的缺点,计算复杂,速度较低。

    SM2 是一种基于椭圆曲线的密码(ECC),用来替换RSA加密算法的。相比 RSA,复杂度更高,同等安全强度下,密钥长度较短,运算效率都要更优,但是国密算法尚未实现广泛的兼容性,在主流浏览器,操作系统的终端环境中不受信任,面向互联网的产品引用中采用国密算法将无法满足可用性、易用性和全球通用性的需求。

    实现

    加解密具体实现方式,在项目中的使用方式后面分为两篇文章介绍

    对于算法的使用最简单的当然是使用现成的,不用重复造轮子,当然若是想要详细了解加解密原理,可以尝试研究源码,现成的有Hutool 提供的工具类,使用简单,但是有些示例有误😅,而且不一定适用实际开发,后面会根据时间开发的使用列举一些示例仅供参考。

    非对称加解密

    对称加解密

    展开全文
  • Delphi与Java互通AES加解密算法
  • 用 MFC 实现了 DES 加密解密,支持打开文件,保存文件
  • 简单的加密 解密算法

    2017-11-11 17:01:58
    简单的解密 加密 c语言实现 主要通过移位,以及异或加解密,非常简单的数据加密.
  • C语言编程实现经典非对称加密算法——RSA加密算法
  • 易语言常用加解密算法模块源码例程程序置入汇编代码多线程实现加解密算法。 易语言常用加解密算法模块源码包含对称类DES,RC6,Blowfish,Rijndael(标准AES)等算法。 三叶自学网
  • 请运行rsa_pro.m
  • *网上很多RC4算法在用的时候,都会出现「加密然后立即在内存中解密」可以,但先把加密后的密文写入文件再读取解密就失败的情况。这段代码没有这种情况。 *采用了重载函数,我用了String加密解密,成功。
  • aes_256加解密算法模型

    2018-09-17 20:12:37
    详细的AES_256加解密算法模型,王队各位猿们有用

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 161,088
精华内容 64,435
关键字:

加解密算法