加密及实现

不可逆加密
  • 说明:加密过程中不需要秘钥,输入明文后经加密算法加密后得到密文,无法由密文解密出明文
  • 用途:一般用于生成数据摘要,通过对比数据摘要来比较数据是否相同,因为数据可能很多,直接比较很耗时
  • 常见算法
    • MD5:Message-Digest Algorithm,密文为128位
    • SHA1:Secure Hash Algorithm,密文为160位
    • SHA2:包括SHA-224 | SHA-256 | SHA-384 | SHA-512,数字表示密文的位数
  • openssl实现
#下面的md5可换成sha1|sha224|sha256|sha384|sha512等
openssl md5 -out a.out a.txt		#计算a.txt的md5值并保存在a.out中
openssl dgst -md5 -out a.out a.txt  #计算a.txt的md5值并保存在a.out中

#下面的md5sum可换成sha1sum|sha224sum|sha256sum|sha384sum|sha512sum等
md5sum a.txt						#计算a.txt的md5值
md5sum -c a.out						#校验a.out中的md5值是否正确
对称加密
  • 说明:需要秘钥,通过明文和秘钥可加密得到密文,通过密文和秘钥可解密得到明文
  • 常见算法
    • DES:Data Encryption Standard,明文要求64位,秘钥64位,得到的密文56位。可选择不同的加密模式(ECB|CBC|CTR|OFB|CFB)和填充模式(pkcs5|pkcs7|iso10126|ansix923|zero)来解决不符合的数据长度,写法:DES-ECB
    • AES:Advanced Encryption Standard,用于替代DES,可选AES-128|AES-192|AES-256(数字表示秘钥的位数),有5种加密模式(ECB|CBC|CTR|OFB|CFB),写法:AES-ECB
非对称加密
  • 说明:需要秘钥,分为公钥和私钥。使用公钥加密的数据只能由私钥解密,使用私钥加密的数据只能由公钥解密,相较于对称加密,耗时更长
  • 常见算法
    • RSA:秘钥至少为500位长,一般推荐使用1024位。
    • ECC:Elliptic Curves Cryptography,椭圆曲线密码编码学
    • DH算法
    • ECC和DH能结合使用构成ECDH算法,用于秘钥协商
#生成RSA私钥
openssl genrsa -des3 2048 -out server.key
#查看RSA私钥
openssl rsa -text -in server.key
#生成RSA公钥
openssl rsa -pubout -in server.key -out server.pub
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值