数据加密技术--加密解密操作
2018-01-28 16:15
239 查看
前言
从古至今,人们对于信息的传递有两种:公开性的和私密性的。公开性的就是可以告诉每个人的信息,而私密性的是不可以让除自己和几方知晓的。因此就产生了对信息的加密,对信息按照某种规律或算法进行编译,只有拥有此算法和规律的人,可以反向解析为真实信息,这就是信息加密,而信息传递运用到的规律或算法可以被称为此信息的密钥。例如:古代军队行军的令旗,战士会根据不同令旗的挥舞,进行不同的战术。这时挥舞不同的令旗就完成了对作战信息的加密和传输,而不同令旗代表的含义就成为了密钥.加密体系
根据加密钥匙的不同,分为两种加密体系。1.传统加密/对程加密
对称加密算法:DES 3DES RC4 RC5 RC6 BASE64 AES256特点:加密和解密使用同一把钥匙
优点:效率高,加密速度快,可以加密大量的数据
缺点:密钥的传递费时,不利于大量人同时通信
加密操作
例1openssl enc -des3 -in /etc/passwd -out /home/passwd.enc
含义为将/etc/passed 内容按3DES的算法编译为/home下的名为passwd.enc 的加密文件
此种方式用cat查看到的内容为乱码
例2
openssl enc -des3 -a -in /etc/passwd -out /home/passwd1.enc
含义与例一相同,但加-a 后,用cat查看加密内容为依算法得到的英文及数字
解密操作
例1openssl enc -des3 -d -in /home/passwd.enc
含义为用3des的算法解密/home/passwd.en文件
例2
openssl enc -des3 -a -d -in /home/passwd1.enc -out /password.txt
含义为用3des的算法解密/home/passwd.en文件并将内容输入到/password.txt文件中
注意:对称加密
用什么算法加密用什么算法解密,
用什么密码加密用什么密码解密,
用什么方式加密用什么方式解密。
2.公钥加密/非对称加密
加密和解密使不用的同钥匙,一般是公钥加密,私钥解密优点:降低了密钥传递时,被截获后破解文件的可能
缺点:效率低,加密慢,只能加密少量数据
加密和解密操作
主机A[root@localhost ~]# gpg –gen-key 生成密钥对
gpg (GnuPG) 2.0.22; Copyright (C) 2013 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
请选择您要使用的密钥种类:
(1) RSA and RSA (default)
(2) DSA and Elgamal
(3) DSA (仅用于签名)
(4) RSA (仅用于签名)
您的选择? 1
RSA 密钥长度应在 1024 位与 4096 位之间。
您想要用多大的密钥尺寸?(2048)
您所要求的密钥尺寸是 2048 位
请设定这把密钥的有效期限。
0 = 密钥永不过期
= 密钥在 n 天后过期
w = 密钥在 n 周后过期
m = 密钥在 n 月后过期
y = 密钥在 n 年后过期
密钥的有效期限是?(0) 365
密钥于 2019年01月26日 星期六 10时45分52秒 CST 过期
以上正确吗?(y/n) y
You need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and Email Address in this form:
“Heinrich Heine (Der Dichter) heinrichh@duesseldorf.de”
真实姓名:jia.tom 填入姓名
电子邮件地址:jiatom.@abc.com 填入邮箱
注释:abc 123 456 abc 填入注释
您选定了这个用户标识:
“jia.tom (abc 123 456 abc) jiatom.@abc.com”
更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)? O
您需要一个密码来保护您的私钥。 填入密码
我们需要生成大量的随机字节。这个时候您可以多做些琐事(像是敲打键盘、移动
鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。
issa;uhsdisaujrfwjioujsdkjfjsiufijsakfljsoifiiwejflkjfsdoifjsifjoisafjlsafoi;wefoijfslkfjowsjfoiaj;ldfjasodfjlkasejfgiojsafgas65dg6+sdf5465gd+95+9d5g+9d85g684df6574h6ed74ghd5f4g6dra74g968ds4f74g6ad4g6d8s
gpg: signal Interrupt caught … exiting
自动出现exiting为结束,期间不断敲击键盘
gpg –list-keys 列出公钥查看
gpg -a -o tom.crt –export jiatom 导出公钥tom.crt
scp -r tom.crt 192.168.122.81:/root 发送密钥到对方的/root下
主机B
gpg –import tom.crt 导入主机A的公钥
gpg -e -a -r jiatom 345.txt 将文件用对方的公钥加密
scp 345.txt.asc 192.168.122.226:/root 将生成的加密文件发送给主机A
主机A
gpg -d -a -o 345.txt /345.txt.asc
(使用自己的私钥解密数据)将345.txt.asc的加密文件内容输入到345.txt中,密码为自己的密码
此时B用A的公钥加密,A可用自己的私钥对B加密后的文件解密。
要使A用此加密方式加密文件并可被B解密,B应同样创建密钥对,将公钥推送给A,A用B公钥加密的文件,才可被B解密。
3.两者结合
非对称加密算法: RSA DSA
Hash算法(散列): MD5 SHA1
相关文章推荐
- 异或加密法 在对文本进行简单加密的时候,可以选择用一个n位的二进制数,对原文进行异或运算。 解密的方法就是再执行一次同样的操作。
- js中对arry数组的各种操作小结 瀑布流AJAX无刷新加载数据列表--当页面滚动到Id时再继续加载数据 web前端url传递值 js加密解密 HTML中让表单input等文本框为只读不可编辑的方法 js监听用户的键盘敲击事件,兼容各大主流浏览器 HTML特殊字符
- 【Java】通过DES加密和解密工具,对字符串进行加密和解密操作
- java对文件进行加密解密操作
- C#操作Word文档(加密、解密、对应书签插入分页符)
- JS实现的base64加密解密操作示例
- 【Java】通过DES加密和解密工具,对字符串进行加密和解密操作
- Java-web下使用RSA进行加密解密操作
- C# 实现对PPT文档加密、解密以及重置密码的操作
- JAVA工具类(12)---文本字符串工具类(数据替换,加密解密操作)
- 文件操作-按行加密解密
- 对称加密算法AES------使用AES算法对文件进行加密/解密的操作(JAVA)
- java对文件进行加密解密操作
- JS中的加密解密操作,以及对应的C#中的加密解密
- Java-web中利用RSA进行加密解密操作的方法示例
- 使用AES算法对文件进行加密/解密的操作(JAVA)
- Java加密解密与数字证书的操作
- RSA加密解密操作
- RSA加密解密操作
- RSA加密解密操作