當前位置:首頁 » 密碼管理 » linuxaes加密工具

linuxaes加密工具

發布時間: 2023-02-28 03:29:54

A. aescrypt是一個好的文件加密工具嗎

aescrypt的確是一個文件加密的軟體,它可以運行在多個操作系統上,比如windows,linux什麼的。同時它採用的是業界通用的AES加密演算法
舉例,如果你在windows上用的話,之需要右鍵點擊一下文件,然後選擇AES加密/解密,同時輸入密碼就好了。挺簡單的。

B. 如何在linux使用md5對其進行加密

這里以字元串123456為例子,它的md5密文值為:
這里以1.txt為需要被加密的文件。

一、 用oppnssl md5 加密字元串和文件的方法。
1. oppnssl md5 加密字元串的方法
a.手動輸入命令及過程如下:
#openssl //在終端中輸入openssl後回車。
OpenSSL> md5 //輸入md5後回車
123456 //接著輸入123456,不要輸入回車。然後按3次ctrl+d。
123456 //123456後面的就是密文了
解釋:為何在輸入123456後不回車呢?
是因為openssl默認會把回車符當做要加密的字元串中的一個字元,所以得到的結果不同。如果你輸入123456後回車,在按2次ctrl+d。得到的結果是:
OpenSSL> md5
123456
//因為openssl不忽略回車符導致的
b.或者直接用管道命令
# echo -n 123456 | openssl md5 //必須要有-n參數,否則就不是這個結果了。

解釋:為何要加-n這個參數?
-n就表示不輸入回車符,這樣才能得到正確的結果。如果你不加-n,那麼結果和前面說的一樣為:
//因為openssl不忽略回車符導致的
2.用openssl加密文件。
#openssl md 5 -in 1.txt

##################################################3
Openssl其他相關加密的命令參數:引自:實用命令:利用openssl進行BASE64編碼解碼、md5/sha1摘要、AES/DES3加密解密 收藏
一. 利用openssl命令進行BASE64編碼解碼(base64 encode/decode)
1. BASE64編碼命令
對字元串『abc』進行base64編碼:
# echo abc | openssl base64
YWJjCg== (編碼結果)
如果對一個文件進行base64編碼(文件名t.txt):
# openssl base64 -in t.txt
2. BASE64解碼命令
求base64後的字元串『YWJjCg==』的原文:
# echo YWJjCg== | openssl base64 -d
abc (解碼結果)
如果對一個文件進行base64解碼(文件名t.base64):
# openssl base64 -d -in t.base64
二. 利用openssl命令進行md5/sha1摘要(digest)
1. 對字元串『abc』進行md5摘要計算:echo abc | openssl md5
若對某文件進行md5摘要計算:openssl md5 -in t.txt
2. 對字元串『abc』進行sha1摘要計算:echo abc | openssl sha1
若對某文件進行sha1摘要計算:openssl sha1 -in t.txt
三. 利用openssl命令進行AES/DES3加密解密(AES/DES3 encrypt/decrypt)
對字元串『abc』進行aes加密,使用密鑰123,輸出結果以base64編碼格式給出:
# echo abc | openssl aes-128-cbc -k 123 -base64
U2FsdGVkX18ynIbzARm15nG/JA2dhN4mtiotwD7jt4g= (結果)
對以上結果進行解密處理:
# echo U2FsdGVkX18ynIbzARm15nG/JA2dhN4mtiotwD7jt4g= | openssl aes-128-cbc -d -k 123 -base64
abc (結果)
若要從文件里取原文(密文)進行加密(解密),只要指定 -in 參數指向文件名就可以了。
進行des3加解密,只要把命令中的aes-128-cbc換成des3就可以了。
註:只要利用openssl help就可以看到更多的安全演算法了。
###############################################

二、 利用php的md5函數加密字元串
#touch a.php //創建a.php文件
#vi a.php //用vi 編輯a.php文件
將<?php echo md5(123456); ?>輸入進去後保存
#php a.php //運行a.php文件
顯示:
三、 利用md5sum命令
A.在linux或Unix上,md5sum是用來計算和校驗文件報文摘要的工具程序。一般來說,安裝了Linux後,就會有md5sum這個工具,直接在命令行終端直接運行。可以用下面的命令來獲取md5sum命令幫助 man md5sum
#md5sum –help
有個提示:「With no FILE, or when FILE is -, read standard input.」翻譯過來就是「如果沒有輸入文件選項或者文件選項為 - ,則從標磚讀取輸入內容」,即可以直接從鍵盤讀取字元串來加密。
利用md5sum加密字元串的方法
# md5sum //然後回車
123456 //輸入123456.然後按兩次ctrl+d.
顯示:
123456 紅色代表加密後的值
還可以用管道命令:
#echo -n '123123' | md5sum

或者寫成md5加密腳本,名字叫md5.sh,
將以下內容復制進腳本里:
#!/bin/bash
echo -n $1 | md5sum | awk '{print $1}'

保存後,給腳本執行許可權。
#sh md5.sh 123456
顯示:
B.其實也可以將文本放入文本文件,然後用md5sum 加密改文本,也可以得到字元串加密的值。過程如下:
#touch a.txt
#echo -n 123456 > a.txt //將123456寫進文本文件,不能丟了 –n參數,避免回車符干擾
#md5sum a.txt
顯示: a.txt

ctrl+d有兩個含義:
一是向程序發送文件輸入結束符EOF。
二是向程序發送exit退出指令。程序收到信號後具體動作是結束輸入、然後等待,還是直接退出,那就要看該程序捕獲信號後是如何操作的了。
md5sum屬於第一個含義。兩次strl+d了,第一次讀取EOF指令,再次捕獲就會當成exit指令。而shell一類的程序,會直接把ctrl+d解析為退出指令。

C. 如何在Linux系統上加密文件和目錄

有很多linux系統上的加密工具,
文件系統級別加密
EncFS:嘗試加密的最簡單方式之一。EncFS工作在基於FUSE的偽文件系統上,所以你只需要創建一個加密文件夾並將它掛載到某個文件夾就可以工作了。
eCryptFS:一個POSIX兼容的加密文件系統,eCryptFS工作方式和EncFS相同,所以你必須掛載它。
磁碟級別加密
Loop-AES:最古老的磁碟加密方法。它真的很快,並且適用於舊系統(如,2.0內核分支)。
DMCrypt:最常見的磁碟加密方案,支持現代Linux內核。
CipherShed:已停止的TrueCrypt磁碟加密程序的一個開源分支。

D. linux進行md5加密

互動式輸入

管道標准輸入處理

對文件處理

利用openssl進行BASE64編碼解碼、md5/sha1摘要、AES/DES3加密解密

針對文件

對字元串『abc』進行aes加密,使用密鑰123,輸出結果以base64編碼格式給出:

對字元串『abc』進行des3加密,使用密鑰123,輸出結果以base64編碼格式給出:

E. Linux Encryption HOWTO 怎樣製作一個加密的文件系統

設定分區

您的硬碟(hda)最少應該包含三個分區:
hda1:這個小的沒加密的分區 應該 要求 一個 口令 為了 載入 加密 的根文件系統
hda2:這個分區應該包含你的加密根文件系統;確保它足夠大
hda3:這個分區就是你的當前的GNU/Linux系統

在這時,hda1和hda2沒有使用。hda3就是當前你安裝的linux發行版; /usr 和/boot不能另外分區裝載。

你的分區分布也許會像下面這樣:

# fdisk -l /dev/hda

Disk /dev/hda: 255 heads, 63 sectors, 2432 cylinders
Units = cylinders of 16065 * 512 bytes

Device Boot Start End Blocks Id System
/dev/hda1 1 1 8001 83 Linux
/dev/hda2 2 263 2104515 83 Linux
/dev/hda3 264 525 2104515 83 Linux
/dev/hda4 526 2047 12225465 83 Linux

安裝 Linux-2.4.27

有兩種主要的方案可用於在內核上添加 loopback加密支持:cryptoloop 和 loop-AES。本文是基於loop-AES方案的,因為因為它的特點是非常快 和非常優化實行 of Rijndael 用匯編語言。如果你有一個IA-32 (x86) CPU ,它將為您提供 最大的性能。另外,還有一些關於cryptoloop的安全關切.

首先,下載和解壓 loop-AES 軟體包:

wget http://loop-aes.sourceforge.net/loop-AES/loop-AES-v2.2b.tar.bz2
tar -xvjf loop-AES-v2.2b.tar.bz2

然後再下載內核源代碼和補丁並為內核源碼打上補丁:

wget http://ftp.kernel.org/pub/linux/kernel/v2.4/linux-2.4.27.tar.bz2
tar -xvjf linux-2.4.27.tar.bz2
cd linux-2.4.27
rm include/linux/loop.h drivers/block/loop.c
patch -Np1 -i ../loop-AES-v2.2b/kernel-2.4.27.diff

設置鍵盤映射:

mpkeys | loadkeys -m - > drivers/char/defkeymap.c

下一步,配置你的內核;確定下面的選項你已經選上了:

make menuconfig

Block devices --->

<*> Loopback device support
[*] AES encrypted loop device support (NEW)

<*> RAM disk support
(4096) Default RAM disk size (NEW)
[*] Initial RAM disk (initrd) support

File systems --->

<*> Ext3 journalling file system support
<*> Second extended fs support

(important note: do not enable /dev file system support)

編譯並安裝內核:
make dep bzImage
make moles moles_install
cp arch/i386/boot/bzImage /boot/vmlinuz

如果你的啟動器是grub,更新你的 /boot/grub/menu.lst或 /boot/grub/grub.conf文件:

cat > /boot/grub/menu.lst << EOF
default 0
timeout 10
color green/black light-green/black
title Linux
root (hd0,2)
kernel /boot/vmlinuz ro root=/dev/hda3
EOF

啟動器是lilo的話就更新/etc/lilo.conf並運行 lilo :
cat > /etc/lilo.conf << EOF
lba32
boot=/dev/hda
prompt
timeout=100
image=/boot/vmlinuz
label=Linux
read-only
root=/dev/hda3
EOF
lilo

現在重啟你的系統。

安裝Linux 2.6.8.1

像之前所說的那樣進行前面的部分,所用補丁是loop-aes'kernel-2.6.8.1.diff 。要注意的是你要安裝mole-init-tools軟體包以便你的系統支持模塊。
安裝util-linux-2.12b

這個losetup程序包含在util-linux-2.12b軟體包中。必須打補丁並重新編譯以使它支持加密。下載,解壓並打為util-linux打補丁:

wget http://ftp.kernel.org/pub/linux/utils/util-linux/util-linux-2.12b.tar.bz2
tar -xvjf util-linux-2.12b.tar.bz2
cd util-linux-2.12b
patch -Np1 -i ../loop-AES-v2.2b/util-linux-2.12c.diff
使用少於20個字元的密碼,鍵入:
CFLAGS="-O2 -DLOOP_PASSWORD_MIN_LENGTH=8"; export CFLAGS

安全可能是你主要關心的一個問題。為此,請不要使您的密碼少於20個字元。數據保密性不是免費的, 你必須以『支付』的形式使用長的密碼。

使用root用戶編譯安裝 losetup程序:
./configure && make lib mount
mv -f /sbin/losetup /sbin/losetup~
rm -f /usr/share/man/man8/losetup.8*
cd mount
gzip losetup.8
cp losetup /sbin
cp losetup.8.gz /usr/share/man/man8/

創建加密的根文件系統
用隨機數據填充目標分區:
shred -n 1 -v /dev/hda2
安裝加密loopback設備:
losetup -e aes256 -S xxxxxx /dev/loop0 /dev/hda2
為防止比較快的字典攻擊,推薦加上-S xxxxxx 選項,"xxxxxx" 是你隨機選取的種子(例如,你可能選擇 "gPk4lA" )。 同樣,為了防止啟動時的鍵盤映射問題,在密碼中不要使用非ASCII字元(方言,等)。Diceware站點提供了一種簡單的的方法去創建強大並容易記住的密碼。
現在開始創建ext3文件系統:
mke2fs -j /dev/loop0
檢測你輸入的密碼是正確的:
losetup -d /dev/loop0
losetup -e aes256 -S xxxxxx /dev/loop0 /dev/hda2
mkdir /mnt/efs
mount /dev/loop0 /mnt/efs
你可以比較已加密的和未加密的數據:

xxd /dev/hda2 | less
xxd /dev/loop0 | less

現在是時候安裝你的加密的linux系統了。如果你使用的是GNU/Linux發行版(譬如Debian, Slackware, Gentoo, Mandrake, RedHat/Fedora, SuSE, etc.), 運行下面的命令:

cp -avx / /mnt/efs
如果你使用是Linux From Scratch手冊,照著lfs手冊上所說的那樣進行配置,但要做以下修改:
Chapter 6 - Installing util-linux:

在解壓源代碼後打上 loop-AES 的補丁。
Chapter 8 - Making the LFS system bootable:
指向我們的下一章(創建啟動設備)。
--------------------------------------------------------

創建啟動設備
創建ramdisk
在開始時,先用chroot命令進入你的加密分區並創建啟動設備的掛載點:
chroot /mnt/efs
mkdir /loader
然後創建 initial ramdisk (initrd),它將會在以後用到:
cd
dd if=/dev/zero of=initrd bs=1k count=4096
mke2fs -F initrd
mkdir ramdisk
mount -o loop initrd ramdisk
如果您使用 grsecurity . 您可能會收到"Permission denied"的提示錯誤的信息;如果是這樣你將必須在chroot命令之前運行 mount命令。
創建文件系統的目錄組織並復制所需要的的文件進去:
mkdir ramdisk/{bin,dev,lib,mnt,sbin}
cp /bin/{bash,mount} ramdisk/bin/
ln -s bash ramdisk/bin/sh
mknod -m 600 ramdisk/dev/console c 5 1
mknod -m 600 ramdisk/dev/hda2 b 3 2
mknod -m 600 ramdisk/dev/loop0 b 7 0
cp /lib/{ld-linux.so.2,libc.so.6,libdl.so.2} ramdisk/lib/
cp /lib/{libncurses.so.5,libtermcap.so.2} ramdisk/lib/
cp /sbin/{losetup,pivot_root} ramdisk/sbin/
如果你看到像"/lib/libncurses.so.5: No such file or directory","/lib/libtermcap.so.2: No such file or directory"的信息,這是正常的。bash 只要求用這兩個庫中的其中一個。 你可以檢測哪一個才是你實際所需要的:
ldd /bin/bash
編譯sleep程序,它將防止密碼提示被內核信息所淹沒(例如當usb設備注冊時)。
cat > sleep.c << "EOF"
#include <unistd.h>
#include <stdlib.h>

int main( int argc, char *argv[] )
{
if( argc == 2 )
sleep( atoi( argv[1] ) );

return( 0 );
}
EOF

gcc -s sleep.c -o ramdisk/bin/sleep
rm sleep.c
創建初始化腳本(不要忘記替換掉你之前報選的種子 "xxxxxx" ):

cat > ramdisk/sbin/init << "EOF"
#!/bin/sh

/bin/sleep 3
/sbin/losetup -e aes256 -S xxxxxx /dev/loop0 /dev/hda2
/bin/mount -r -n -t ext3 /dev/loop0 /mnt

while [ $? -ne 0 ]
do
/sbin/losetup -d /dev/loop0
/sbin/losetup -e aes256 -S xxxxxx /dev/loop0 /dev/hda2
/bin/mount -r -n -t ext3 /dev/loop0 /mnt
done

cd /mnt
/sbin/pivot_root . loader
exec /usr/sbin/chroot . /sbin/init
EOF

chmod 755 ramdisk/sbin/init

卸載 loopback 設備並壓縮initrd:
umount -d ramdisk
rmdir ramdisk
gzip initrd
mv initrd.gz /boot/
從CD-ROM啟動
我強烈建議您從只讀的媒體里啟動您的系統,例如可啟動的光碟。
下載並解壓syslinux:
wget http://ftp.kernel.org/pub/linux/utils/boot/syslinux/syslinux-2.10.tar.bz2
tar -xvjf syslinux-2.10.tar.bz2
配置isolinux:
mkdir bootcd
cp /boot/{vmlinuz,initrd.gz} syslinux-2.10/isolinux.bin bootcd
echo "DEFAULT /vmlinuz initrd=initrd.gz ro root=/dev/ram0" \
> bootcd/isolinux.cfg

把iso映像刻錄到可啟動光碟中:

mkisofs -o bootcd.iso -b isolinux.bin -c boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table \
-J -hide-rr-moved -R bootcd/

cdrecord -dev 0,0,0 -speed 4 -v bootcd.iso

rm -rf bootcd{,.iso}

從硬碟啟動

當你丟失了你的可啟動光碟時,啟動分區就可以派上用場了。請記住hda1是個可寫分區,因而並不是很可靠的,只有當你遇到緊急的情況時才使用它!

創建並掛載ext2文件系統:

dd if=/dev/zero of=/dev/hda1 bs=8192
mke2fs /dev/hda1
mount /dev/hda1 /loader

復制內核和initial ramdisk:

cp /boot/{vmlinuz,initrd.gz} /loader

如果你使用的是grub :

mkdir /loader/boot
cp -av /boot/grub /loader/boot/
cat > /loader/boot/grub/menu.lst << EOF
default 0
timeout 10
color green/black light-green/black
title Linux
root (hd0,0)
kernel /vmlinuz ro root=/dev/ram0
initrd /initrd.gz
EOF
grub-install --root-directory=/loader /dev/hda
umount /loader

如果你使用lilo:

mkdir /loader/{boot,dev,etc}
cp /boot/boot.b /loader/boot/
mknod -m 600 /loader/dev/hda b 3 0
mknod -m 600 /loader/dev/hda1 b 3 1
mknod -m 600 /loader/dev/ram0 b 1 0
cat > /loader/etc/lilo.conf << EOF
lba32
boot=/dev/hda
prompt
timeout=100
image=/vmlinuz
label=Linux
initrd=/initrd.gz
read-only
root=/dev/ram0
EOF
lilo -r /loader
umount /loader

最後一步 仍然保持chroot的狀態,修改/etc/fstab增加以下選項:
/dev/loop0 / ext3 defaults 0 1

去除 /etc/mtab 並從chroot中退出。最後 ,運行 "umount -d /mnt/efs"命令然後重啟系統。 如果有某些錯誤發生,你仍然可以在 LILO提示中用"Linux root=/dev/hda3"來啟動你未加密的分區。

如果一切都順利,你就可以重新分區你的硬碟和繼續加密你的hda3或hda4分區。在下面的腳本中,我們假設 hda3將掛載swap設備,hda4掛載/home目錄;你應該先初始化這兩個分區:
shred -n 1 -v /dev/hda3
shred -n 1 -v /dev/hda4
losetup -e aes256 -S xxxxxx /dev/loop1 /dev/hda3
losetup -e aes256 -S xxxxxx /dev/loop2 /dev/hda4
mkswap /dev/loop1
mke2fs -j /dev/loop2

然後在系統的啟動目錄里創建一個腳本並更新 /etc/fstab:
cat > /etc/init.d/loop << "EOF"
#!/bin/sh

if [ "`/usr/bin/md5sum /dev/hda1`" != \
" /dev/hda1" ]
then
echo -n "WARNING! hda1 integrity verification FAILED - press enter."
read
fi

echo "1st password chosen above" | \
/sbin/losetup -p 0 -e aes256 -S xxxxxx /dev/loop1 /dev/hda3

echo "2nd password chosen above" | \
/sbin/losetup -p 0 -e aes256 -S xxxxxx /dev/loop2 /dev/hda4

/sbin/swapon /dev/loop1

for i in `seq 0 63`
do
echo -n -e "\33[10;10]\33[11;10]" > /dev/tty$i
done

EOF

chmod 700 /etc/init.d/loop
ln -s ../init.d/loop /etc/rcS.d/S00loop
vi /etc/fstab
...
/dev/loop2 /home ext3 defaults 0 2

F. 高分求完整aes加密程序(C/C++),Linux下就完美了。

如果你是程序開發人員,應該有自己動手查找資源的能力啊,這個AES很好找啊。

這個是github上的專門為嵌入式優化過的,作者介紹ARM上大概使用200bytesRAM和2.5KROM


https://github.com/kokke/tiny-AES128-C

為防你上不了github,我直接下下來做了個附件

G. 如何在Linux中產生,加密或解密隨機密碼

1. 使用命令 pwgen 來生成一個長度為 10 個字元的獨特的隨機密碼。假如你還沒有安裝 pwgen,請使用 Apt 或 YUM 等包管理器來安裝它。
$ pwgen 101
生成一個獨特的隨機密碼
一口氣生成若干組長度為 50 個字元的唯一的隨機密碼!
$ pwgen 50
生成多組隨機密碼
2. 你還可以使用 makepasswd 來每次生成一個給定長度的獨特的隨機密碼。在你把玩 makepasswd 命令之前,請確保你已經安裝了它。如若沒有安裝它,試試使用 Apt 或 YUM 包管理器來安裝 makepasswd這個軟體包。
生成一個長度為 10 個字元的隨機密碼。該命令產生的密碼的長度默認為 10。
$ makepasswd
使用 makepasswd 生成獨特的密碼
生成一個長度為 50 個字元的隨機密碼。
$ makepasswd --char50
生成長度為 50 的密碼
生成 7 個長度為 20 個字元的隨機密碼。
$ makepasswd --char20--count 7
3. 使用帶「鹽」的 Crypt(註:這里應該指的是一個函數,可以參考這里 ) 來加密一個密碼。提供手動或自動添加 「鹽」。
對於那些不清楚 鹽 的意義的人,這里的 「鹽」 指的是一個隨機數據,它作為密碼生成函數的一個額外的輸入, 目的是保護密碼免受詞典攻擊。
在執行下面的操作前,請確保你已經安裝了 mkpasswd。
下面的命令將帶 「鹽」 加密一個密碼。「鹽」 的值是隨機自動生成的。所以每次你運行下面的命令時,都將產生不同的輸出,因為它每次接受了隨機取值的 「鹽」。
$ mkpasswd tecmint
使用 Crypt 來加密密碼
現在讓我們來手動定義 「鹽」 的值。每次它將產生相同的結果。請注意你可以輸入任何你想輸入的值來作為 「鹽」 的值。
$ mkpasswd tecmint -s tt
帶「鹽」加密密碼
另外, mkpasswd 還是互動式的,假如你在命令中沒有提供密碼,它將主動詢問你來輸入密碼。
4. 使用 aes-256-cbc 加密演算法並使用帶「鹽」的密碼(如 「tecmint」) 加密一個字元串(如 「Tecmint-is-a-Linux-Community」)。
# echo Tecmint-is-a-Linux-Community | openssl enc -aes-256-cbc -a -salt -pass pass:tecmint
在 Linux 中加密一個字元串
在上面例子中, echo 命令的輸出通過管道傳遞給了 openssl 命令,使得該輸出通過加密編碼方式(enc:Encoding with Cipher ) 所加密,這個過程中使用了 aes-256-cbc 加密演算法,並附帶了密碼 (tecmint) 和 「鹽」 。
5. 使用 openssl 命令的 -aes-256-cbc 解密選項來解密上面的字元串。
# echo U2FsdGVkX18Zgoc+/Z | openssl enc -aes-256-cbc -a -d -salt -pass pass:tecmint
在 Linux 中解密字元串
現在就是這些內容了。

H. 如何在Linux系統上加密

打開虛擬機,進入安裝好的Linux系統,創建一個屬於自己的目錄,這里我創建的是test

在創建的目錄中新建一個文件,名字為test.txt

在文件中輸入「北京歡迎你」,然後保存

執行openssl加密命令
openssl enc -des-ede3-cbc -in test.txt -out JMtest.txt -k 12345678

查看生成的文件JMtest.txt,發現是亂碼,說明已經加密成功

然後執行openssl的解密命令
openssl enc -des-ede3-cbc -in JMtest.txt -out test_after.txt -d -k 12345678

查看生成的文件test_after.txit,可以清楚的看到「北京歡迎你」,說明解密成功

熱點內容
促銷升級源碼 發布:2025-08-21 13:20:39 瀏覽:68
各大資料庫 發布:2025-08-21 13:13:53 瀏覽:810
設計圖庫加密 發布:2025-08-21 13:06:38 瀏覽:515
索引存儲是數據的存儲方式么 發布:2025-08-21 13:05:31 瀏覽:506
我的世界大型伺服器ip大全 發布:2025-08-21 12:54:23 瀏覽:578
htcandroidl 發布:2025-08-21 12:50:59 瀏覽:963
編程拳皇 發布:2025-08-21 12:50:57 瀏覽:330
sqlserver2005作業 發布:2025-08-21 12:15:25 瀏覽:325
安卓手機怎麼設置側邊任務欄 發布:2025-08-21 12:11:10 瀏覽:774
二級c能編譯嗎 發布:2025-08-21 11:58:53 瀏覽:973