加密算法


目录:

加密算法

image-20220615161249466

1】验证数据安全性:MD5(长度固定是128位)、sha

MD5是最常见的摘要算法,速度很快,生成结果是固定的16字节,通常用一个32位的16进制字符串表示。

SHA1算法更安全点,它的结果是20字节长度,通常用一个40位的16进制字符串表示。而比SHA1更安全的算法是SHA256和SHA512等等,不过越安全的算法越慢,并且摘要长度更长

md5确保文件传输的完整性,验证数据的完整性。

特点:

  1. 定长:使用相同加密算法计算的结果的长度是固定的。
  2. 雪崩效应[或者叫蝴蝶效应]:
  3. 不可逆:可以从原文件得出的出md5秘钥,但是不能从md5秘钥得出原文件。
  4. 不冲突:两个文件的md5秘钥不一样。
[root@test-6 ~]# cd /tmp/
[root@test-6 tmp]# ls
keyring-0jYUM3  orbit-gdm           pulse-n7LOUxZTjmR8   virtual-root.zz4KiQ
keyring-0SSCka  orbit-root          virtual-root.dfRHVe  yum.log
keyring-iaJzvf  pulse-iX0VKByiW6bU  virtual-root.EzdbHf
[root@test-6 tmp]# cp yum.log test
[root@test-6 tmp]# ls
keyring-0jYUM3  orbit-gdm           pulse-n7LOUxZTjmR8   virtual-root.EzdbHf
keyring-0SSCka  orbit-root          test                 virtual-root.zz4KiQ
keyring-iaJzvf  pulse-iX0VKByiW6bU  virtual-root.dfRHVe  yum.log
[root@test-6 tmp]# md5sum test 
d41d8cd98f00b204e9800998ecf8427e  test
[root@test-6 tmp]# echo -n "d41d8cd98f00b204e9800998ecf8427e" | wc -c
32

image-20220615161331219

修改文件内容后的对比效果:

[root@test-6 tmp]# md5sum test 
d23b0275de7c76eb21095f805485ab92  test
[root@test-6 tmp]# cat test 
absc
sasadas
[root@test-6 tmp]# echo -e "absc\nsasadasq" > test 
[root@test-6 tmp]# md5sum test 
7b73a44651dc8bf648d4dfc3a64e5beb  test
[root@test-6 tmp]# echo -e "absc\nsasadas" > test 
[root@test-6 tmp]# md5sum test 
d23b0275de7c76eb21095f805485ab92  test

sha:

image-20220615161345844

Living Example:md5sum file

md5sum file
  • 得到文件的md5码。

  • md5文件的一个"特征值". 如果两个文件md5相同, 一般可以认为两个文件相同.

  • 可以用来比较两个应该相同的文件是不是确实相同.(如拷贝数据之后)

2】对称加密算法:DES 、3DES 、AES 、AES-512

  • 加密和解密的密钥是一样的才行

  • 加密速度非常快

查看哪些加密算法:

[root@test-6 ~]# openssl enc -h

1、加密文件/tmp下的test

[root@test-6 ~]# openssl enc -des -a -in /tmp/test -out testenc  #testenc表示加密的文件
enter des-cbc encryption password:          输入密码        #des表示加密算法
Verifying - enter des-cbc encryption password:  输入密码

2、加密和原文件的对比:

[root@test-6 ~]# cat testenc 
U2FsdGVkX19hVqGcD0DwrUj8NnkXeYljjzF8l6KAX6Y=
[root@test-6 ~]# cat /tmp/test 
absc
sasadas

3、解密文件:

[root@test-6 ~]# openssl enc -des -a -in testenc -out test -d  #(test表示文件)
enter des-cbc decryption password:

3】非对称加密算法:RSA、DSA、ECC

生成一对密钥对

公钥(公开的密钥)

私钥(不可以公开)

作用:可以用来验证身份

1、生成私钥:

[root@test-6 xx]# ls
ppp
[root@test-6 xx]# openssl genrsa -out a.key 1024
Generating RSA private key, 1024 bit long modulus
..................++++++
........++++++
e is 65537 (0x10001)
[root@test-6 xx]# ls
a.key  ppp

image-20220615162722214

2、利用私钥提出公钥:

[root@test-6 xx]# openssl rsa -in a.key -pubout -out a-pub.key
writing RSA key

image-20220615162727929

3、使用公钥来加密明文信息

[root@test-6 xx]# openssl rsautl -encrypt -in ppp -inkey a-pub.key -pubin -out ppp.enc

image-20220615162734179

4、解密

[root@test-6 xx]# openssl rsautl -decrypt -in ppp.enc -inkey a.key -out ppp.bak
[root@test-6 xx]# ls
a.key  a-pub.key  ppp  ppp.bak  ppp.enc

image-20220615162741019

  • ppp表示明文原文件

  • ppp.enc表示使用公钥来加密明文信息

  • ppp.bak表示解密后的文件

  • a.key表示私钥

  • a-pub.key表示公钥

4】linux生成随机密码的方法

参考:http://www.51niux.com/?id=56

免责声明: 本文部分内容转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除。