加 密算法通常分为对称性加密算法和非对称性加密算法,对于对称性加密算法,信息接收双方都需事先知道密匙和加解密算法且其密匙是相同的,之后便是对数据进行 加解密了。非对称算法与之不同,发送双方A,B事先均生成一堆密匙,然后A将自己的公有密匙发送给B,B将自己的公有密匙发送给A,如果A要给B发送消 息,则先需要用B的公有密匙进行消息加密,然后发送给B端,此时B端再用自己的私有密匙进行消息解密,B向A发送消息时为同样的道理。

几种对称性加密算法:AES,DES,3DES

DES是一种分组数据加密技术(先将数据分成固定长度的小数据块,之后进行加密),速度较快,适用于大量数据加密,而3DES是一种基于DES的加密算法,使用3个不同密匙对同一个分组数据块进行3次加密,如此以使得密文强度更高。

相较于DES和3DES算法而言,AES算法有着更高的速度和资源使用效率,安全级别也较之更高了,被称为下一代加密标准。

几种非对称性加密算法:RSA,DSA,ECC

RSA和DSA的安全性及其它各方面性能都差不多,而ECC较之则有着很多的性能优越,包括处理速度,带宽要求,存储空间等等。

几种线性散列算法(签名算法):MD5,SHA1,HMAC

这几种算法只生成一串不可逆的密文,经常用其效验数据传输过程中是否经过修改,因为相同的生成算法对于同一明文只会生成唯一的密文,若相同算法生成的密文不同,则证明传输数据进行过了修改。通常在数据传说过程前,使用MD5和SHA1算法均需要发送和接收数据双方在数据传送之前就知道密匙生成算法,而HMAC与之不同的是需要生成一个密匙,发送方用此密匙对数据进行摘要处理(生成密文),接收方再利用此密匙对接收到的数据进行摘要处理,再判断生成的密文是否相同。

对于各种加密算法的选用:

由于对称加密算法的密钥管理是一个复杂的过程,密钥的管理直接决定着他的安全性,因此当数据量很小时,我们可以考虑采用非对称加密算法。

在实际的操作过程中,我们通常采用的方式是:采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,这样我们就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理密钥的优点。

如果在选定了加密算法后,那采用多少位的密钥呢?一般来说,密钥越长,运行的速度就越慢,应该根据的我们实际需要的安全级别来选择,一般来说,RSA建议采用1024位的数字,ECC建议采用160位,AES采用128为即可。

ps:

1、公钥加密体制用于保密性时,就是公钥加密,私钥解密。 因为公钥是可以公开了, 那么任何人都可以使用公钥对信息进行加密,但是只有持有私钥的人才能正确解密。这样就保证了信息的保密性,因为只有私钥持有者才能正确解密。

2、公钥加密体制用于认证性时,比如数字签名,即私钥持有者对信息进行签名,验证者可以根据公开的公钥进行验证签名是否正确和有效,即实现了认证性,以及不可抵赖性。

公钥加密私钥解密, 没问题,也可以说是"公共密钥加密系统"

私钥加密公钥解密,一般不这么说,应叫"私钥签名,公钥验证",也可以说是“公共密钥签名系统”

再来说一下"公共密钥签名系统"目的:(如果晕就多看几遍,这个没搞清,后面的代码就更晕)

A欲传(信息)给B,但又怕B不确信该信息是A发的。

1.A选计算(信息)的HASH值,如用MD5方式计算,得到:[MD5(信息)]

2.然后用自已的私钥加密HASH值,得到:[私钥(MD5(信息))]

3.最后将信息与密文一起传给B:传给B:[(信息) + 私钥(MD5(信息))]

B接到 :[(信息) + 私钥(MD5(信息))]

1.先用相同的HASH算法算出(信息)的HASH值,这里也使用MD5方式

得到: [MD5(信息)!]

2. 再用A的公钥解密 [ 私钥(MD5(信息))]

[公钥(私钥(MD5(信息)))] = [(MD5(信息)]

如能解开,证明该 [ 私钥(MD5(信息))]是A发送的

3.再比效[MD5(信息)!]与[(MD5(信息)]

如果相同,表示(信息)在传递过程中没有被他人修改过

aes sm1 对比_加密算法比较3DES AES RSA ECC MD5 SHA1等相关推荐

  1. 加密算法(DES,AES,RSA,ECC,MD5,SHA1)简介

    加密算法(DES,AES,RSA,MD5,SHA1)简介 一.对称性加密算法 二.非对称算法 三.散列算法 四.算法举例 1.对称性加密算法有:AES.DES.3DES 1.1.DES(Data En ...

  2. APP安全--网络传输安全 AES/RSA/ECC/MD5/SHA

    移动端App安全如果按CS结构来划分的话,主要涉及客户端本身数据安全,Client到Server网络传输的安全,客户端本身安全又包括代码安全和数据存储安全.所以当我们谈论App安全问题的时候一般来说在 ...

  3. aes sm1 对比_RFID安全问题的解读

    伴随RFID技术的广泛运用,在RFID读写器.rfid标签和互联网等各个阶段,数据信息都存有安全风险,安全与隐私难题早已变成牵制RFID技术的首要因素之一.RFID行业有广义和狭义之分.狭义的RFID ...

  4. java aes解密算法_使用java实现AES算法的加解密(亲测可用)

    话不多说,直接上代码 import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto ...

  5. DES/3DES/AES区别

    DES/3DES/AES区别 公元前400年,古希腊人发明了置换密码.1881年世界上的第一个电话保密专利出现.在第二次世界大战期间,德国军方启用"恩尼格玛"密码机,密码学在战争中 ...

  6. 加密算法 AES MD5 SHA1

    2019独角兽企业重金招聘Python工程师标准>>> 加密算法通常分为对称性加密算法和非对称性加密算法,对于对称性加密算法,信息接收双方都需事先知道密匙和加解密算法且其密匙是相同的 ...

  7. Java实现密码学工具,集成了对称加密算法DES,AES,IDEA,公开加密算法RSA,ECC,散列算法MD5,SHA1,CRC32,以及RSA,DSA,ECDSA数字签名验证示例。

    密码学综合工具 前言 git网址 项目结构 项目预览 String与byte[]互转 通过`String`类转换 通过`Base64`互转[jdk-8] 前言 我们网络信息安全的实验...要我们找各种 ...

  8. 密码学实验题_03.3_AES实验_利用Sage构建AES的S盒和逆S盒(基于阅读Sage数学库的Python代码)

    密码学实验题_03.3_AES实验_利用Sage构建AES的S盒和逆S盒(基于阅读Sage数学库的Python代码) 3.    AES实验 3)    (思考题)利用Sage构建AES的S盒和逆S盒 ...

  9. 常见加密算法DES、AES和RSA的原理和特点

    关注+星标公众号,不错过精彩内容 编排 | strongerHuang 微信公众号 | 嵌入式专栏 今天主要总结下常用的对称性加密算法DES和AES,非对称性加密算法RSA. 嵌入式专栏 1 DES加 ...

  10. java aes iv 24位_【JAVA】AES加密 简单实现 AES-128/ECB/PKCS5Padding

    AES加密 AES 是一种可逆加密算法,对用户的敏感信息加密处理. 本文暂不深入AES原理,仅关注JAVA代码实现AES加解密. JAVA代码实现 这是一个在线AES加密网站.从页面上我们可以看到如下 ...

最新文章

  1. [codevs 1913] 数字梯形问题
  2. 微生物生态期刊Soil Biology and Biochemistry(SBB)简介
  3. 图灵七月书讯【Cassandra权威指南将在7月末上市】
  4. 【Android基础】序列化 Serializable vs Parcelable
  5. JavaScript对象理解
  6. python distplot 图_Python可视化23 |seaborn.distplot公司单变量分布图(直方图|核密度图),23seaborndistplot...
  7. c语言在键盘输入abc回车,C语言期末考试试卷子商务1111、21.doc
  8. 如何使用ES6在JavaScript中有条件地构建对象
  9. 湖南科技大学计算机男女比例,湖师大文学院新生男女比例1:9 成了“女儿国”...
  10. 20200723:198周周赛学习记录
  11. @Html.Partials 加载分布视图传参数
  12. 游戏设计的100个原理(6-10)
  13. CISCO常用配置命令
  14. SAP接口编程之 JCo3.0 系列(03) : 表参数
  15. 北京思科CCIE认证靠谱的机构 网络工程师 -ie-lab网络实验室
  16. 程序员的自我修养之数学基础10:超定方程的求解
  17. PHP架构师的成长之路
  18. 三十而立,心怀斗志,我仍是少年——小康师兄的2021年度总结
  19. 机器人动力学与控制学习笔记(七)————基于计算力矩法的滑模控制
  20. python_6_17

热门文章

  1. 《MySQL必知必会》学习笔记——第九章(正则表达式)
  2. dom4j解析xml_JAVADom、Sax解析XML详解
  3. 计算机能力挑战赛_全国高校计算机能力挑战赛(基于tensorflow+python+opencv)!
  4. 本地Windows安装Navicat
  5. Bootstrap入门!
  6. 沪台教师携手“播种”传统文化 让中华文明浸润孩子
  7. hadoop-06-http服务
  8. 计算两个路径的父亲路径
  9. Spring Boot入门(3)-数据库操作
  10. wordpress配置邮箱发送功能