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

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

最新文章

  1. NPTL vs PThread
  2. CreateFile函数详解
  3. iOS 杂笔-22(万年一遇~一张图片对代理的理解)
  4. (转载)Java基础知识总结
  5. Path类型的扩展方法 z
  6. XtraForm默认皮肤的显示
  7. rsyslog 传输日志
  8. 华为有AI,这场转型战有点大
  9. valueForKeyPath用途
  10. 将 DNSCrypt 部署到 Openwrt 路由器上+ DNSmasq 解析国内域名用本地 DNS[ZT+实践]
  11. Windows-universal-samples学习笔记系列四:Data
  12. Ing_制作在线QQ
  13. 结巴分词python
  14. verilog语法实例学习(2)
  15. Using 1.7 requires compiling with Android 4.4 (KitKat); currently using
  16. Codeforces Round #351 (VK Cup 2016 Round 3, Div. 2 Edition) B. Problems for Round 水题
  17. HDFS权限管理用户指南
  18. Oracle 常用系统包
  19. python学习之路 一 :编程语言介绍
  20. Java中的return语句使用总结

热门文章

  1. npm 修改源 pip 修改源
  2. python学习之路---day04
  3. Codeforces - 570D 离散DFS序 特殊的子树统计 (暴力出奇迹)
  4. centos yum安装高版本php,apache,mysql
  5. java中的线程(3):线程池类 ThreadPoolExecutor「线程池的类型、参数、扩展等」
  6. git push的一些坑
  7. 使用Verilog描述RTL图
  8. URL篇之URL
  9. pytorch 安装
  10. SQL Server 2008 SQL2012 SQL2014 收缩日志 清空删除大日志文件