md5腳本
首先你要明白兩點:
1.批處理是靠cmd.exe解釋運行的
2.md5不是加密演算法而是「信息摘要演算法」,不管多大的文件或者多長的字元串只返回16或32位的hash信息
所以md5不可逆,而且不是嚴格意義的加密演算法?要說加密的話也應該是rsa,des這些IEEE認證的演算法的
你的問題,可以寫個exe,把加密後的bat作為資源捆綁進exe中,然後由exe負責解密運行,但這樣得不償失,成本太高,還不如直接寫exe來的快
如果你非要加密想來想去只有一個比較經濟可行的方法,用winrar把批處理做成一個可執行的解壓文件,就是exe格式的rar包,然後給這個exe文件加個強殼,這樣可以在一定程度上保護起來,但是內行還是可以解出來的
最後,共享是一種美德,雖然我基本可以肯定你哪個所謂的bat技術含量不會太高。。
⑵ loadrunner錄制腳本md5加密密碼位數太長如何調試
在一些初始化處理後,MD5以512位分組來處理輸入文本,每一分組又劃分為16個32位子分組。演算法的輸出由四個32位分組組成,將它們級聯形成一個128位散列值。
首先填充消息使其長度恰好為一個比512位的倍數僅小64位的數。填充方法是附一個1在消息後面,後接所要求的多個0,然後在其後附上64位的消息長度(填充前)。這兩步的作用是使消息長度恰好是512位的整數倍(演算法的其餘部分要求如此),同時確保不同的消息在填充後不相同。
四個32位變數初始化為:
A=0x01234567
B=0x89abcdef
C=0xfedcba98
D=0x76543210
它們稱為鏈接變數(chaining variable)
接著進行演算法的主循環,循環的次數是消息中512位消息分組的數目。
將上面四個變數復制到別外的變數中:A到a,B到b,C到c,D到d。
主循環有四輪(MD4隻有三輪),每輪很相擬。第一輪進行16次操作。每次操作對a,b,c和d中的其中三個作一次非線性函數運算,然後將所得結果加上第四個變數,文本的一個子分組和一個常數。再將所得結果向右環移一個不定的數,並加上a,b,c或d中之一。最後用該結果取代a,b,c或d中之一。
以一下是每次操作中用到的四個非線性函數(每輪一個)。
F(X,Y,Z)=(X&Y)|((~X)&Z)
G(X,Y,Z)=(X&Z)|(Y&(~Z))
H(X,Y,Z)=X^Y^Z
I(X,Y,Z)=Y^(X|(~Z))
(&是與,|是或,~是非,^是異或)
這些函數是這樣設計的:如果X、Y和Z的對應位是獨立和均勻的,那麼結果的每一位也應是獨立和均勻的。
函數F是按逐位方式操作:如果X,那麼Y,否則Z。函數H是逐位奇偶操作符。
設Mj表示消息的第j個子分組(從0到15),<<<s表示循環左移s位,則四種操作為:
FF(a,b,c,d,Mj,s,ti)表示a=b+((a+(F(b,c,d)+Mj+ti)<<<s)
GG(a,b,c,d,Mj,s,ti)表示a=b+((a+(G(b,c,d)+Mj+ti)<<<s)
HH(a,b,c,d,Mj,s,ti)表示a=b+((a+(H(b,c,d)+Mj+ti)<<<s)
II(a,b,c,d,Mj,s,ti)表示a=b+((a+(I(b,c,d)+Mj+ti)<<<s)
這四輪(64步)是:
第一輪
FF(a,b,c,d,M0,7,0xd76aa478)
FF(d,a,b,c,M1,12,0xe8c7b756)
FF(c,d,a,b,M2,17,0x242070db)
FF(b,c,d,a,M3,22,0xc1bdceee)
FF(a,b,c,d,M4,7,0xf57c0faf)
FF(d,a,b,c,M5,12,0x4787c62a)
FF(c,d,a,b,M6,17,0xa8304613)
FF(b,c,d,a,M7,22,0xfd469501)
FF(a,b,c,d,M8,7,0x698098d8)
FF(d,a,b,c,M9,12,0x8b44f7af)
FF(c,d,a,b,M10,17,0xffff5bb1)
FF(b,c,d,a,M11,22,0x895cd7be)
FF(a,b,c,d,M12,7,0x6b901122)
FF(d,a,b,c,M13,12,0xfd987193)
FF(c,d,a,b,M14,17,0xa679438e)
FF(b,c,d,a,M15,22,0x49b40821)
第二輪
GG(a,b,c,d,M1,5,0xf61e2562)
GG(d,a,b,c,M6,9,0xc040b340)
GG(c,d,a,b,M11,14,0x265e5a51)
GG(b,c,d,a,M0,20,0xe9b6c7aa)
GG(a,b,c,d,M5,5,0xd62f105d)
GG(d,a,b,c,M10,9,0x02441453)
GG(c,d,a,b,M15,14,0xd8a1e681)
GG(b,c,d,a,M4,20,0xe7d3fbc8)
GG(a,b,c,d,M9,5,0x21e1cde6)
GG(d,a,b,c,M14,9,0xc33707d6)
GG(c,d,a,b,M3,14,0xf4d50d87)
GG(b,c,d,a,M8,20,0x455a14ed)
GG(a,b,c,d,M13,5,0xa9e3e905)
GG(d,a,b,c,M2,9,0xfcefa3f8)
GG(c,d,a,b,M7,14,0x676f02d9)
GG(b,c,d,a,M12,20,0x8d2a4c8a)
第三輪
HH(a,b,c,d,M5,4,0xfffa3942)
HH(d,a,b,c,M8,11,0x8771f681)
HH(c,d,a,b,M11,16,0x6d9d6122)
HH(b,c,d,a,M14,23,0xfde5380c)
HH(a,b,c,d,M1,4,0xa4beea44)
HH(d,a,b,c,M4,11,0x4bdecfa9)
HH(c,d,a,b,M7,16,0xf6bb4b60)
HH(b,c,d,a,M10,23,0xbebfbc70)
HH(a,b,c,d,M13,4,0x289b7ec6)
HH(d,a,b,c,M0,11,0xeaa127fa)
HH(c,d,a,b,M3,16,0xd4ef3085)
HH(b,c,d,a,M6,23,0x04881d05)
HH(a,b,c,d,M9,4,0xd9d4d039)
HH(d,a,b,c,M12,11,0xe6db99e5)
HH(c,d,a,b,M15,16,0x1fa27cf8)
HH(b,c,d,a,M2,23,0xc4ac5665)
第四輪
II(a,b,c,d,M0,6,0xf4292244)
II(d,a,b,c,M7,10,0x432aff97)
II(c,d,a,b,M14,15,0xab9423a7)
II(b,c,d,a,M5,21,0xfc93a039)
II(a,b,c,d,M12,6,0x655b59c3)
II(d,a,b,c,M3,10,0x8f0ccc92)
II(c,d,a,b,M10,15,0xffeff47d)
II(b,c,d,a,M1,21,0x85845dd1)
II(a,b,c,d,M8,6,0x6fa87e4f)
II(d,a,b,c,M15,10,0xfe2ce6e0)
II(c,d,a,b,M6,15,0xa3014314)
II(b,c,d,a,M13,21,0x4e0811a1)
II(a,b,c,d,M4,6,0xf7537e82)
II(d,a,b,c,M11,10,0xbd3af235)
II(c,d,a,b,M2,15,0x2ad7d2bb)
II(b,c,d,a,M9,21,0xeb86d391)
常數ti可以如下選擇:
在第i步中,ti是4294967296*abs(sin(i))的整數部分,i的單位是弧度。
(2的32次方)
所有這些完成之後,將A,B,C,D分別加上a,b,c,d。然後用下一分組數據繼續運行演算法,最後的輸出是A,B,C和D的級聯。
⑶ 我的用戶登錄密碼數據(user_pass)是 MD5的,自己有個小程序但無法使用MD5登錄。 以下是php腳本:
樓主你貌似沒有在密碼驗證那部分加上MD5加密處理哦。
用戶提交密碼後,先把改密碼加密成MD5,然後再和資料庫存放的MD5密碼做對比。
⑷ 如何在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解析為退出指令。
⑸ 請設計一個腳本checkmd5,sh,實現用於檢測linux系統重要文件是否被修改的功能,該腳
從Linux操作系統出現開始,使用Linux替代Windows的觀點和期待就一直存在。經過多年的發展,Linux取得了長足的進步,在桌面計算機領域的佔有率也有了一定的提高。然而,當下的Linux操作系統是否已經在實用性上達到目標了呢
⑹ 易語言 腳本組件1.執行md5
你這個是webQQ協議吧,需要添加一個「腳本語言支持庫組建 2.0 版」 添加方法:工具》支持庫配置》腳本語言支持庫組建 2.0 版》確定
實在不懂的直接下載這個 http://www.3600gz.cn/forum.php?mod=viewthread&tid=123464
⑺ 求一個核對文件MD5值的shell腳本
#!/bin/sh
for file in `cat list.txt`;do
oldmd5=`grep $file md5.txt|awk '{$1}'`
newmd5=`md5sum $file|awk '{$1}'`
if [[ $oldmd5 == $newmd5 ]];then
echo $file is no changed;
else
echo $file had changed;
fi
done
⑻ linux腳本怎麼隨機生成md5
一句話: find ./ -type f -print0 | xargs -0 md5sum > ./my.md5 這樣,所有的MD5值都寫入my.md5文件了
⑼ 怎麼用asp腳本語言生成md5加密後的sql腳本
asp的md5實現網上有現成的代碼:http://www..com/s?ie=gb2312&bs=asp+%C3%AC%B6%DC&sr=&z=&cl=3&f=8&wd=asp+MD5&ct=0
sql腳本為什麼要加密呀? md5是不可逆加密,加密後 的sql腳本 就沒什麼意義了
⑽ 請問你那個修改md5的11.bat原理是什麼
原理就是給原始文件的數據末尾添加一個空文件的數據,達到改變md5
如果大家都有一個md5值相同的文件,通過這個腳本執行後,得到的新文件的md5值依舊一樣。