Unix下為你的檔案加密
如果你有使用過WinRAR,
其實做法很簡單,所要使用的指令就只有openssl,
openssl enc -e -cipher_method -in input_file -out output_file
其中-e表示要加密、-d表示解密、-in表示輸入的檔案、-
# openssl enc -e -des3 -in /etc/hosts -out /tmp/hosts.cpt
enter des-ede3-cbc encryption password:12345
Verifying - enter des-ede3-cbc encryption password:12345
上面的範例使用des3的加密法將/etc/hosts加密,
那要如何解開檔案呢?剛有講到-e表示要加密(encrypt)
# openssl enc -d -des3 -in /tmp/hosts.cpt
enter des-ede3-cbc decryption password:12345
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
192.168.0.1 rac1-priv
192.168.0.2 rac2-priv
192.168.0.101 rac1-vip
192.168.0.102 rac2-vip
上面的例子和加密幾乎沒什麼差別。把-e換-d,-
因為openssl可以使用stdin和stdout,
# cd /etc
# tar cf - * | gzip -c | openssl enc -e -des3 -out /tmp/hosts.tar.gz.cpt
enter des-ede3-cbc encryption password:12345
Verifying - enter des-ede3-cbc encryption password:12345
# file /tmp/hosts.tar.gz.cpt
/tmp/hosts.tar.gz.cpt: data
# openssl enc -d -des3 -in hosts.tar.gz.cpt |gzip -dc | tar -xf -
enter des-ede3-cbc decryption password:12345
如果不喜歡手動敲密碼,那也可以。
我們可以利用/dev/
# dd if=/dev/random of=/tmp/crypt.key bs=256 count=1
0+1 records in
0+1 records out
# openssl enc -e -bf -k /tmp/crypt.key -in /etc/hosts -out /tmp/host.cpt2
# openssl enc -d -bf -k /tmp/crypt.key -in /tmp/host.cpt2
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
192.168.0.1 rac1-priv
192.168.0.2 rac2-priv
192.168.0.101 rac1-vip
192.168.0.102 rac2-vip
很多時候會需要把資料備份到磁帶去,
# tar cf - /report/* | openssl enc -e -bf -k /tmp/crypt.key | dd of=/dev/st0
# dd if=/dev/st0 | openssl enc -d -bf -k /tmp/crypt.key | tar -xf -
在Solaris 10以前,如果有需要通常我也會安裝openssl的套件。
encrypt -l會列出可用的演算法和key的大小的資訊。
# encrypt -l
Algorithm Keysize: Min Max (bits)
------------------------------------------
aes 128 128
arcfour 8 128
des 64 64
3des 192 192
看看下面加密和解密的指令和openssl是不是還挺像的呢?
# encrypt -a 3des -i /etc/hosts -o /tmp/hosts.cpt
Enter key:
# decrypt -a 3des -i /tmp/hosts.cpt
Enter key:
#
# Internet host table
#
127.0.0.1 localhost
當然也可以使用key檔,如果你要用dd產生的話,
# dd if=/dev/random of=/tmp/3des.key bs=24 count=1
# tar cf - * | gzip -c | encrypt -a 3des -k /tmp/3des.key -o /tmp/etc.tar.gz.cpt
# decrypt -a 3des -k /tmp/3des.key -i /tmp/etc.tar.gz.cpt|gzip -dc|tar tf -
再來要談的和檔案的加解密沒什麼關係,不過和加密倒是有關。
# md5sum /etc/hosts
dd7b3e9f10bbbd510a4637e7f29d3533 /etc/hosts
但在Solaris裡並沒有相對應的指令,
# digest -l
sha1
md5
sha256
sha384
sha512
# digest -a md5 /etc/hosts
26cc2a22d93ecf862c8849ecaa29739c
如果習慣使用md5sum的話,你可以建個alias來代替。
# alias md5sum='digest -va md5'
# md5sum /etc/hosts
md5 (/etc/hosts) = 26cc2a22d93ecf862c8849ecaa29739c
如果你懷疑你的系統遭到入侵,程式有可能遭到竄改時,
# md5sum /bin/passwd
md5 (/bin/passwd) = f8a67ae893f0ced25b2bd7fd1ccc9b4e
我在Solaris 10 x86的系統下,以/usr/passwd為例,
f8a67ae893f0ced25b2bd7fd1ccc9b4e - - 1 match(es)
* canonical-path: /usr/bin/passwd
* package: SUNWcsu
* version: 11.10.0,REV=2005.01.21.16.34
* architecture: i386
* source: Solaris 10/x86
這表示passwd這一支程式的內容並沒有變動過,
f8a67ae893f0ced25b2bd7fd1ccc9b4a - - 0 match(es)
Not found in this database.
你的程式要不是因某些原因變動過,
留言
不論是黑客防線, nohack雜誌, 邪惡八禁制, 看雪 都有他們的長處
台灣就是須要有板住這種人的support