Linux下使用MD5加密BASE64加密


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

  一、 用oppnssl md5 加密字符串和文件的方法。
  1. oppnssl md5 加密字符串的方法
  a.手動輸入命令及過程如下:
  #openssl //在終端中輸入openssl后回車。
  OpenSSL> md5 //輸入md5后回車
  123456 //接着輸入123456,不要輸入回車。然后按3次ctrl+d。
  123456e10adc3949ba59abbe56e057f20f883e //123456后面的就是密文了
  解釋:為何在輸入123456后不回車呢?
  是因為openssl默認會把回車符當做要加密的字符串中的一個字符,所以得到的結果不同。如果你輸入123456后回車,在按2次ctrl+d。得到的結果是:
  OpenSSL> md5
  123456
  f447b20a7fcbf53a5d5be013ea0b15af //因為openssl不忽略回車符導致的
  b.或者直接用管道命令
  # echo -n 123456 | openssl md5 //必須要有-n參數,否則就不是這個結果了。
  e10adc3949ba59abbe56e057f20f883e
  解釋:為何要加-n這個參數?
  -n就表示不輸入回車符,這樣才能得到正確的結果。如果你不加-n,那么結果和前面說的一樣為:
  f447b20a7fcbf53a5d5be013ea0b15af //因為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文件
  顯示:e10adc3949ba59abbe56e057f20f883e
  三、 利用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.
  顯示:
  123456e10adc3949ba59abbe56e057f20f883e 紅色代表加密后的值
  還可以用管道命令:
  #echo -n '123123' | md5sum
  
  或者寫成md5加密腳本,名字叫md5.sh,
  將以下內容復制進腳本里:
  #!/bin/bash
  echo -n $1 | md5sum | awk '{print $1}'
  
  保存后,給腳本執行權限。
  #sh md5.sh 123456
  顯示:e10adc3949ba59abbe56e057f20f883e
  B.其實也可以將文本放入文本文件,然后用md5sum 加密改文本,也可以得到字符串加密的值。過程如下:
  #touch a.txt
  #echo -n 123456 > a.txt //將123456寫進文本文件,不能丟了 –n參數,避免回車符干擾
  #md5sum a.txt
  顯示:e10adc3949ba59abbe56e057f20f883e a.txt
  
  ctrl+d有兩個含義:
  一是向程序發送文件輸入結束符EOF。
  二是向程序發送exit退出指令。程序收到信號后具體動作是結束輸入、然后等待,還是直接退出,那就要看該程序捕獲信號后是如何操作的了。
  md5sum屬於第一個含義。兩次strl+d了,第一次讀取EOF指令,再次捕獲就會當成exit指令。而shell一類的程序,會直接把ctrl+d解析為退出指令。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM