這里以字元串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解析為退出指令。
2. linuxshell怎麼計算設備文件的md5
計算設備文件的md5所要用到的命令就是 md5sum
man一下md5sum命令,得到md5sum命令的用法:
md5sum [OPTION]… [FILE]…
1、計算指定文件的MD5值(如a.rmvb)
md5sum a.rmvb
輸出結果類似如下:
a.rmvb
即計算出的md5值加上文件名
測試了一下,發現這命令算一2G多的電影所用時間不過幾十鈔,效率還行。
2、計算字元串MD5值(如字元串 「password」)
echo -n 「password」 | md5sum
輸出:
–
上面echo加 -n的作用是去除串結尾的回車符,因為echo命令默認會添加一回車符。
像如果是:
echo 「password」 | md5sum
那輸出的將會是:
–
不加-n與加-n結果是不一樣的。正確的做法一般是要加-n參數。
3. linux下怎麼生成文件的md5
linux下查詢文件的md5值:md5sum
xxx.iso.md5
md5演算法常常被用來驗證網路文件傳輸的完整性,防止文件被人篡改。md5全稱是報文摘要演算法(message-digest
algorithm
5),此演算法對任意長度的信息逐位進行計算,產生一個二進制長度為128位(十六進制長度就是32位)的「指紋」(或稱「報文摘要」),不同的文件產生相
同的報文摘要的可能性是非常非常之小的。
在linux或unix上,md5sum是用來計算和校驗文件報文摘要的工具程序。一般來說,安裝了linux後,就會有md5sum這個工具,直接在命令行終端直接運行。可以用下面的命令來獲取md5sum命令幫助
man
md5sum
使用md5sum來產生指紋(報文摘要)命令如下:md5sum
file
>
file.md5
或者
md5sum
file
>>file.md5
註:
>
和
>>
的區別在於:
>
表示把由file文件產生的摘要重定向到文件file.md5,但是會覆蓋file.md5裡面的內容;而
>>
則將輸出的摘要附加到file.md5文件的後面。也可以把多個文件的報文摘要輸出到一個md5文件中,這要使用通配符*,比如某目錄下有幾個iso文
件,要把這幾個iso文件的摘要輸出到iso.md5文件中,命令如下:md5sum
*.iso
>
iso.md5
使用md5報文摘要驗證文件,方法有二:
a、把下載的文件file和該文件的file.md5報文摘要文件放在同一個目錄下,然後用如下命令進行驗證:md5sum
-c
file.md5
然後如果驗證成功,則會輸出:正確;
b、下載了文件file,然後運行下面的命令:md5sum
file
命令會輸出一個md5的報文摘要,然後把這個報文摘要直接與file.md5中的內容比較,如果一樣,就說明驗證正確。
4. 如何在Linux內核中調用MD5演算法計算文件的MD5值
linux中有md5sum這個命令可以對文件計算md5值 在內核中要計算文件的md5值只能先將文件的內容讀到內存中了,在內核中打開文件用filp_open函數,讀寫數據也要struct file這個結構體
5. 如何查詢linux 的MD5值是多少
如果大家在官方下載了系統鏡像iso文件的話,通常官方會提供MD5值以用來確保鏡像的完整性的,在Linux下可以使用md5sum這個命令計算文件的md5值的,後直接跟文件即可,例如:md5sum Centos.iso 計算後就可以比對官方提供的MD5值了,如果不一樣的話,那麼說明這個鏡像被篡改了是不安全的,如果你想學Linux的話,可以去看看《Linux就該這么學》這本書,非常適合新手。
6. 怎麼樣把linux安裝的ISO文件自帶的MD5碼改動
首先你要了解md5是什麼東西,
md5散列是以對目標進行簽名驗證的一種產物,他通過一定的演算法,將目標(可以是文件
可以是字元串)量化為一個16位長度的16進制字串
,所以如果你想更改iso文件的md5值
,只需要更改源文件或者源字元串即可
,對於iso
,用編輯工具往裡面添加一個文件或者刪除一個文件
即可造成md5值的變化
7. 如何在Linux下用C語言實現MD5/DES解密
相關庫函數如下:
#include <openssl/md5.h>
unsigned char *MD5(const unsigned char *d, unsigned long n,unsigned char *md);
int MD5_Init(MD5_CTX *c);
int MD5_Update(MD5_CTX *c, const void *data,unsigned long len);
int MD5_Final(unsigned char *md, MD5_CTX *c);
8. 如何在linux下快速生成當前目錄下所有文件夾下所有文件的MD5
一句話:
find ./ -type f -print0 | xargs -0 md5sum > ./my.md5
這樣,所有的MD5值都寫入my.md5文件了
9. linux命令下md5怎麼使用方法
MD5演算法常常被用來驗證網路文件傳輸的完整性,防止文件被人篡改。MD5全稱是報文摘要演算法(Message-Digest Algorithm5),此演算法對任意長度的信息逐位進行計算,產生一個二進制長度為128位(十六進制長度就是32位)的指紋(或稱報文摘要),不同的文件產生相同的報文摘要的可能性是非常非常之小的。在linux或Unix上,md5sum是用來計算和校驗文件報文摘要的工具程序。一般來說,安裝了linux後,就會有md5sum這個工具,直接在命令行終端直接運行。1、使用md5sum來產生指紋(報文摘要)命令如下:md5sum file > file.md5或者md5sum file >>file.md5也可以把多個文件的報文摘要輸出到一個md5文件中,這要使用通配符*,比如某目錄下有幾個iso文件,要把這幾個iso文件的摘要輸出到iso.md5文件中,命令如下:md5sum *.iso > iso.md52、使用md5報文摘要驗證文件,方法有二:把下載的文件file和該文件的file.md5報文摘要文件放在同一個目錄下,然後用如下命令進行驗證:md5sum -c file.md5然後如果驗證成功,則會輸出:正確md5sum passwd passwd.bak /etc/passwd
10. linux 下自帶的MD5函數怎麼用
MD5演算法常常被用來驗證網路文件傳輸的完整性,防止文件被人篡改。MD5全稱是報文摘要演算法(Message-Digest Algorithm5),此演算法對任意長度的信息逐位進行計算,產生一個二進制長度為128位(十六進制長度就是32位)的指紋(或稱報文摘要),不同的文件產生相同的報文摘要的可能性是非常非常之小的。在linux或Unix上,md5sum是用來計算和校驗文件報文摘要的工具程序。一般來說,安裝了linux後,就會有md5sum這個工具,直接在命令行終端直接運行。1、使用md5sum來產生指紋(報文摘要)命令如下:md5sum file > file.md5或者md5sum file >>file.md5也可以把多個文件的報文摘要輸出到一個md5文件中,這要使用通配符*,比如某目錄下有幾個iso文件,要把這幾個iso文件的摘要輸出到iso.md5文件中,命令如下:md5sum *.iso > iso.md52、使用md5報文摘要驗證文件,方法有二:把下載的文件file和該文件的file.md5報文摘要文件放在同一個目錄下,然後用如下命令進行驗證:md5sum -c file.md5然後如果驗證成功,則會輸出:正確md5sum passwd passwd.bak /etc/passwd