把你的密码放在加密设备上
来源:互联网 发布:世界贸易进出口数据 编辑:程序博客网 时间:2024/05/06 12:26
时间久远,我都忘了原理是什么了。 Linux 太过稳定, 有的事情做过一遍,很难有机会再做第二遍。 我只记录了操作。
首先安装 cryptsetup 包, 我用的是Debian, 因此用
apt-get install cryptsetup
安装。 我猜想RPM系统的Linux,应该也有类似包吧。
然后做一个加密的块设备,名为testfile,大小为10M:
dd if=/dev/urandom of=testfile bs=1M count=10
sudo losetup /dev/loop/0 testfile
sudo cryptsetup luksFormat /dev/loop/0
(enter the passphrase)
cryptsetup luksOpen /dev/loop/0 testfs
请牢记你输入的passphrase, 以后就靠它解密该设备了。 然后在块设备上创建文件系统:
mke2fs /dev/mapper/testfs
接下来就可以挂载设备了:
mount /dev/mapper/testfs /mnt/test
cp ~/my_secret.txt /mnt/test
挂载点是 /mnt/test , 然后你就可以往该目录写文件了。 文件其实上会写到 testfile 这个文件上去。 卸载之后, testfile 是加密的。
这是第一次操作,比较复杂些。 以后有了这个testfile文件, 无非就是写文件前mount 设备:
sudo modprobe dm_crypt
sudo losetup /dev/loop/0 testfile
sudo cryptsetup luksOpen /dev/loop/0 testfs
sudo mount /dev/mapper/testfs ~/aaa
编辑文件或复制文件:
vi ~aaa/my_secret.txt
cp certificate ~/aaa
操作完后, umount 设备:
sudo umount ~/aaa
sudo cryptsetup luksClose /dev/mapper/testfs
sudo losetup -d /dev/loop/0
testfile 看上去就是一个10M大小的文件,内容是看不出来的。
file testfile
testfile: LUKS encrypted file, ver 1 [aes, cbc-essiv:sha256, sha1] UUID: 12815c58-43ee-4b65-b0db-c1387c9
为了方便使用, 我写了一个脚本, 用法是 encrypt.sh on 就是挂载,输入创建设备时的passphrase; encrypt.sh off 就是卸载。 请根据需要修改其中的FILE, DEVICE, MOUNT变量。
#! /bin/sh## convenient script to (un)mount an encrypted file# Dai Yuwen, June 16, 2007#FILE=~/secretDEVICE=secretMOUNT=~/mntLOOP=/dev/loop0usage (){ echo "Usage: `basename $0` <on>|<off>"}if [ $# -lt 1 ]; then usage exit 1ficase $1 in on) sudo losetup $LOOP $FILE && \ sudo cryptsetup luksOpen $LOOP $DEVICE && \ if sudo mount /dev/mapper/$DEVICE $MOUNT; then echo $FILE mounted on $MOUNT ; fi ;; off) sudo umount $MOUNT && \ sudo cryptsetup luksClose /dev/mapper/$DEVICE && \ sudo losetup -d $LOOP ;; *) usage exit 1 ;;esac
注意, 在加密设备挂载期间, 它的内容是可见的。 因此要注意挂载点的权限,如果此时系统里有另外一个用户,如果挂载点有被他可读的权限, 他可以看到文件的内容! 要把挂载点设成只对本人可读、可写、可执行。
- 把你的密码放在加密设备上
- 把 optware 用在你的嵌入设备上
- 把目标放在长期分销通路的优势上
- 把更多的时间和精力放在个股上
- 把精力放在最值得关注的事情上
- 把旧的工作负载放在过滤器上
- [转] 把自己放在地图上
- 把样式表放在头上
- 把你的搜索条件放整齐
- 【Win10】如何把你常用的软件工具放在Win10开始菜单的磁贴位置?
- C#把dll放在不同的目录让你的程序更整洁
- 如果把赵微的眼睛放在 刘德华的脸 上会是什么样子
- 把mvc 发布后的程序放在iis上的子目录下报错了
- 把鼠标放在Form的边缘上不会出现可拉动
- 把100%才华和精力直接放在直接的目标上
- AI学习过程(6)把经历放在Pipeline的哪个步骤上?
- 把更多的时间放在用户体验和细节上
- 把满腔的怒火放在这里
- 搜索算法集锦
- 怎么给老外选礼物
- word下使用mathtype有关公式的操作
- 输入输出流
- EXTJS4 Ext.data.TreeStore model
- 把你的密码放在加密设备上
- 精简版oracle客户端程序
- delphi控制excel的重要属性和方法
- 彻底删除office 的文字服务栏
- xsl语法介绍
- web2.0成恶意代码沃土
- oracle 数据库服务启动进程停止响应
- 浅谈base64编码
- base64算法在vb(.net)中的实现