linux加密代碼
方法一:用tar命令 對文件加密壓縮和解壓
壓縮:
tar-zcf-filename|openssldes3-salt-kpassword|ddof=filename.des3
此命令對filename文件進行加碼壓縮 生成filename.des3加密壓縮文件, password 為加密的密碼。
方法二:用zip命令對文件加密壓縮和解壓
zip-refilename.zipfilename回車,輸入2次密碼
② 如何在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解析為退出指令。
③ Linux文檔怎麼加密,用什麼辦法好
合力天下LINUX防泄密系統概述
Linux具有天生秉承的優勢,越來越多的企業轉向了Linux的開發和應用。使用Linux操作系統的單位多數都擁有自主知識產權,如果有絲毫的泄露,都會造成巨大的損失。 基於多年的數據防泄漏防護經驗,北京合力天下數碼信息技術有限公司自主研發了一套運行在Linux平台環境下,防止Linux系統中自主知識產權泄密的產品。該系統在不改變用戶使用習慣、計算機文件格式和編譯程序的情況下,對指定類型的代碼文件進行實時、透明的加解密。所有通過非法途徑獲得的數據,都將以亂碼文件形式表現。
合力天下LINUX防泄密系統是一款功能強大且易於使用的LINUX文檔加密軟體產品,該系統採用「驅動層AES智能透明加密技術」對指定類型的文件進行實時、強制、透明的加解密。在正常使用時,計算機內存中的文件是以受保護的明文形式存放,但硬碟上保存的數據卻處於加密狀態,如果沒有合法的使用身份、訪問許可權和正確的安全通道,所有加密文件都將以密文狀態保存。
合力天下LINUX防泄密系統穩定可靠,並且具備良好的可擴展性,能同時滿足企業其它應用系統文檔加密需求,有效防止數據丟失或泄露,有助於更深入、更全面地實施數據保護,從而確保企業機密數據的高度安全。
合力天下LINUX防泄密系統產品架構
合力天下LINUX防泄密系統採用控制台/伺服器/代理(B/S/C)體系:伺服器(Server)、客戶端代理(Agent)和控制台(Management Console)三部分組成。
M/S/A三部分相互協調工作:管理員通過控制台的WEB瀏覽器制訂靈活的安全策略;安全策略被保存在伺服器上;終端計算機上安裝的代理主動連接伺服器;接收到網路連接後,伺服器把制訂好的策略下發到該終端計算機;終端計算機代理的安全引擎執行安全策略,進行安全控制。
合力天下LINUX防泄密系統部署模式
合力天下LINUX防泄密系統功能特點
一驅動層透明加密
針對研發單位,可對JAVA、C、C++ 等各種源代碼文件進行透明加密保護;
針對手機、電子書等版權單位,可針對任何需要保護其版權的文檔類型進行透明加密保護;
針對辦公環境,可對任何文件類型加密。
二編譯加密源代碼
針對研發單位,加密的源代碼文檔無需解密為明文,可直接通過編譯進程進行編譯。
編譯後的Image文件是明文,便於產品的測試與分發。
三網路通信安全隧道
加密文檔(如源代碼)需要通過文檔版本管理軟體(如CVS\SVN\GIT)通過網路或文件系統進行集中備份與共享。加密文件系統提供網路安全隧道功能,保護網路通信中的加密文件。
如加密文件需要保存到伺服器上,既可以密文存儲到伺服器上也可以明文存儲到伺服器上。
如明文存儲到伺服器上,加密系統的網路安全隧道可與合力天下LINUX防泄密系統伺服器數據保護網關聯動,實現加密文檔在上傳到伺服器網關自動解密,下載文件時網關自動加密。如此既保障了文檔的可靠性、可用性,又保障文檔的安全性。
四進程合法性驗證
對進程進行簽名認證,驗證通過的進程,才是合法進程,才能對加密文件行讀寫操作。
任何偽造進程的方式都無法讀寫加密文檔。如更改進程名稱、SVN多種協議讀寫加密文件等都無法解密文件。
五自身安全強保護
系統具有自我保護能力,在自身受到破壞不完整時整個系統依然能夠保障數據的安全性。
粘貼/拷貝控制
系統具有防粘貼拷貝能力,不可信進程可以拷貝任何數據到可信進程;但可信進程不允許拷貝數據到任何其它進程,有效防止數據的泄露。
六文件批量加密
可對明文文件批量加密,針對開源的文件很方便的合並到工程裡面。
批量加密流程具有保護機制,防止已經加密的文件再次加密,造成文件的損壞。
七可離線工作
離線即客戶端網路連接不上加密伺服器所處的狀態,如外出辦公等。
加密系統支持離線辦公,離線的安全策略為最近一次在線時的文件加密策略。
八與Windows加密系統兼容
Linux加密系統與Windows加密系統相互兼容:Windows加密的文件在Linux下能夠操作,在Linux加密的文件在Windows下能夠操作。
合力天下linux防泄密系統加密規則
1.不可信進程規則
不可信進程創建、編輯的文件都是明文文件。
不可信進程讀取的加密文件是亂碼,不可以使用。
2.可信進程規則
可信進程創建符合加密規則的文件是加密的文件。
可信進程可以透明讀寫編輯加密文件。
原不加密但符合加密規則文件,一但可信進程進行了編輯,則原文件成為加密文件。
可信進程在未創建、讀寫加密文件前,創建不符合加密規則的文件是明文的。
可信進程在未創建、讀寫加密文件前,可以任意編輯明文文件,該文件不被加密。
可信進程一旦創建、編輯了加密文件,則後續創建、編輯的所有文件都是加密的。
3.進程間拷貝粘貼規則
可以自由的從不可信進程中粘貼拷貝文字到可信進程。
可以自由的從不可信進程中粘貼拷貝文字到不可信進程。
可信進程的文字拷貝受到安全保護,禁止隨意拷貝文字。
4.編譯器進程規則
編譯器創建的二進制文件是明文的,可以隨意燒到嵌入式設備中。
5.離線加密規則
支持離線文檔加密。
離線規則為最近一次上線的文檔加密規則。
6.文件批量加密
支持文件批量代碼加密轉化。
④ 我是大一學生,剛學c語言,請問怎麼用代碼實現給文件保密。簡單的加密。註:我們是在linux環境下編程。
調用 zip 壓縮加密碼。絕對取巧但有效!
不過如果是 Linux 下面,你有很多函數庫可以找。
其實加密隨便啦,只要讓別人不能讀取出來就行了。可以說用 base64 轉碼一下都有加密效果。加密演算法有很多的,只要別用不可逆就行了。最簡單的來說,用密碼異或一下就算入門加密技術了。
⑤ 如何在 Linux 中產生,加密或解密隨機密碼
openssl是可以加解密,但是你的要求是創建用戶並輸入密碼,據我所知,linux的passwd命令好象只能用鍵盤交互,沒法用腳本預設的。有個可用的法是:用useradd命令創建完用戶後,再用腳本修改/etc/shadow(這個文件是真正存放用戶密碼的地方)里的密碼段,這個密碼段是用hash演算法加密的,好象是sha256還是sha512之類的吧,例如'000000',加密後是$6$7z4nJy/C69Wj$A65GjO61mBtErCbGNxIt1IUumPs/YUmeu1Zb7jElxNU/5TNmIDNx//etc/shadow的許可權只有root用戶可以修改,因此這個腳本要由root來執行。
⑥ 如何給Linux下的可執行文件加密
/etc/passwd、/etc/shadow、二個配置文件用於系統帳號管理,都是文本文件,可用vim等文本編輯器打開。/etc/passwd用於存放用戶帳號信息,/etc/shadow 用於存放每個用戶加密的密碼。 /etc/passwd文件用於存放用戶賬戶信息,每行代表一個賬戶,每...
⑦ 在Linux下生成crypt加密密碼的方法
我們可以用mkpasswd命令:這個命令就是用來生成crypt格式的密碼的:
mkpasswd
輸入命令後,程序會要求輸入一個密碼,然後生成crypt格式的字元串。
如果用Apache
Web伺服器,那麼也可以用htpasswd:
htpasswd
-nd
user
用戶名(user)叫什麼都無所謂,我們關注的是密碼。這個命令會輸出一個user:password格式的字元串,直接把password欄位復制下來就ok了。
有OpenSSL的話,可以使用openssl命令:
openssl
passwd
-crypt
myPassword
把上面命令中的myPassword用你想用的密碼字元串代替。
其他還有一些需要把命令在命令行中直接輸入的方式,不過這種做法有個問題,就是在ps命令中可以看到密碼,同時密碼也會被記錄入shell歷史。
不過這個問題是有解決辦法的:用腳本,或者語言解釋器。
比如使用Perl:
perl
-e
"print
crypt('password','sa');"
Perl需要一個加密鹽,如這里使用了sa(salt指加密中用到的隨機字元串,用不同的salt可以生成不同的加密結果)。
Ruby也一樣需要加密鹽:
ruby
-e
'print
"password".crypt("JU");
print("n");'
PHP也可以:
php
-r
"print(crypt('password','JU')
.
"n");"
需要注意的是,如果不使用加密鹽(如上面命令中的JU),那麼輸出的字元串將不是crypt加密格式,而是MD5加密格式的。所以,加密鹽其實是必須的參數。
python需要導入crypt庫並使用加密鹽:
python
-c
'import
crypt;
print
crypt.crypt("password","Fx")'
這里的加密鹽是Fx。
資料庫也可以生成crypt密碼。比如用Mysql:
echo
"select
encrypt('password');"
|
mysql
另外,Tcl,Ubuntu下的trf,還有Lua的lua-crypt插件也可以實現相同的目的。
歡迎補充其他的方式!
⑧ 如何在Linux系統上加密文件和目錄
加密類型
我們主要有兩種加密文件和目錄的方法。一種是文件系統級別的加密,在這種加密中,你可以選擇性地加密某些文件或者目錄(如,/home/alice)。對我而言,這是個十分不錯的方法,你不需要為了啟用或者測試加密而把所有一切重新安裝一遍。然而,文件系統級別的加密也有一些缺點。例如,許多現代應用程序會緩存(部分)文件你硬碟中未加密的部分中,比如交換分區、/tmp和/var文件夾,而這會導致隱私泄漏。
另外一種方式,就是所謂的全盤加密,這意味著整個磁碟都會被加密(可能除了主引導記錄外)。全盤加密工作在物理磁碟級別,寫入到磁碟的每個比特都會被加密,而從磁碟中讀取的任何東西都會在運行中解密。這會阻止任何潛在的對未加密數據的未經授權的訪問,並且確保整個文件系統中的所有東西都被加密,包括交換分區或任何臨時緩存數據。
可用的加密工具
在Linux中要實施加密,有幾個可供選擇的工具。在本教程中,我打算介紹其中一個:eCryptFS,一個用戶空間文件系統加密工具。下面提供了一個Linux上可用的加密工具摘要供您參考。
文件系統級別加密
EncFS:嘗試加密的最簡單方式之一。EncFS工作在基於FUSE的偽文件系統上,所以你只需要創建一個加密文件夾並將它掛載到某個文件夾就可以工作了。
eCryptFS:一個POSIX兼容的加密文件系統,eCryptFS工作方式和EncFS相同,所以你必須掛載它。
磁碟級別加密
Loop-AES:最古老的磁碟加密方法。它真的很快,並且適用於舊系統(如,2.0內核分支)。
DMCrypt:最常見的磁碟加密方案,支持現代Linux內核。
CipherShed:已停止的TrueCrypt磁碟加密程序的一個開源分支。
eCryptFS基礎
eCrypFS是一個基於FUSE的用戶空間加密文件系統,在Linux內核2.6.19及更高版本中可用(作為encryptfs模塊)。eCryptFS加密的偽文件系統是掛載到當前文件系統頂部的。它可以很好地工作在EXT文件系統家族和其它文件系統如JFS、XFS、ReiserFS、Btrfs,甚至是NFS/CIFS共享文件系統上。Ubuntu使用eCryptFS作為加密其家目錄的默認方法,ChromeOS也是。在eCryptFS底層,默認使用的是AES演算法,但是它也支持其它演算法,如blowfish、des3、cast5、cast6。如果你是通過手工創建eCryptFS設置,你可以選擇其中一種演算法。
就像我所的,Ubuntu讓我們在安裝過程中選擇是否加密/home目錄。好吧,這是使用eCryptFS的最簡單的一種方法。
Ubuntu提供了一個用戶友好的工具集,通過eCryptFS可以讓我們的生活更輕松,但是在Ubuntu安裝過程中啟用eCryptFS只創建了一個指定的預配置的設置。所以,如果默認的設置不適合你的需求,你需要進行手工設置。在本教程中,我將介紹如何在主流Linux發行版上手工設置eCryptFS。
eCryptFS的安裝
Debian,Ubuntu或其衍生版:
代碼如下:
$ sudo apt-get install ecryptfs-utils
注意,如果你在Ubuntu安裝過程中選擇加密家目錄,eCryptFS應該已經安裝了。
CentOS, RHEL or Fedora:
代碼如下:
# yum install ecryptfs-utils
Arch Linux:
代碼如下:
$ sudo pacman -S ecryptfs-utils
在安裝完包後,載入eCryptFS內核模塊當然會是一個很好的實踐:
代碼如下:
$ sudo modprobe ecryptfs
配置eCryptFS
現在,讓我們開始加密一些目錄,運行eCryptFS配置工具:
代碼如下:
$ ecryptfs-setup-private
它會要求你輸入登錄密碼和掛載密碼。登錄密碼和你常規登錄的密碼一樣,而掛載密碼用於派生一個文件加密主密鑰。這里留空可以生成一個(復雜的),這樣會更安全。登出然後重新登錄。
你會注意到,eCryptFS默認在你的家目錄中創建了兩個目錄:Private和.Private。~/.Private目錄包含有加密的數據,而你可以在~/Private目錄中訪問到相應的解密後的數據。在你登錄時,~/.Private目錄會自動解密並映射到~/Private目錄,因此你可以訪問它。當你登出時,~/Private目錄會自動卸載,而~/Private目錄中的內容會加密回到~/.Private目錄。
eCryptFS怎麼會知道你擁有~/.Private目錄,並自動將其解密到~/Private目錄而不需要我們輸入密碼呢?這就是eCryptFS的PAM模塊搗的鬼,它為我們提供了這項便利服務。
如果你不想讓~/Private目錄在登錄時自動掛載,只需要在運行ecryptfs-setup-private工具時添加「--noautomount」選項。同樣,如果你不想要~/Private目錄在登出後自動卸載,也可以自動「--noautoumount」選項。但是,那樣後,你需要自己手工掛載或卸載~/Private目錄:
[/code]$ ecryptfs-mount-private ~/.Private ~/Private
$ ecryptfs-umount-private ~/Private
你可以來驗證一下.Private文件夾是否被掛載,運行:
代碼如下:
$ mount
現在,我們可以開始把任何敏感文件放進~/Private文件夾里頭了,它們會在我們登出時自動被加密並鎖在~/.Private文件內。
所有這一切看起來是那麼得神奇。這主要是ecryptfs-setup-private工具讓一切設置變得簡單。如果你想要深究一點,對eCryptFS指定的方面進行設置,那麼請轉到官方文檔。
結尾
綜上所述,如果你十分關注你的隱私,最好是將基於eCryptFS文件系統級別的加密和全盤加密相結合。切記,只進行文件加密並不能保證你的隱私不受侵犯。
⑨ 關於linux設置密碼加密
用戶名加密遇見的較少。密碼一般都支持md5,sha1等。就是你選通過md5,sha1等演算法加密你的密碼,然後把密文寫在你的配置文件里。具體格應該看你的應用程序的說明。
⑩ 如何在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 中解密字元串
現在就是這些內容了。