測試環境:windows10
宣告:因為特殊字元產生的缺字元和長度錯誤已修正
使用方法:
1.第一段**:
文字編輯器如editplus,儲存,儲存型別選擇「所有檔案」,名稱為「密碼.bat」
可以修改密碼長度,大小寫字母數字符號的數量,對應第二段**txt檔案中大小寫字母數字符號的數量
2.第二段**:
文字編輯器如editplus,儲存,儲存型別選擇「所有檔案」,名稱為」zdb.txt",內容可根據需要修改
3.第一段和第二段**放到同一目錄
4.原始金鑰是按照大寫字母,數字,小寫字母,符號為一組生成的,亂序金鑰是原始密碼的亂序排列,
最終密碼就是亂序密碼,可以用於亂序,也可以用於複雜的亂序金鑰的生成
6.如果原始金鑰寫固定值,可以書寫如下call set "key=******",並保留len這個變數及固定值長度,注意固定值中的特殊字元要轉義,加^
7.改了一處錯誤
密碼.bat**:
@echo off
setlocal enabledelayedexpansion
rem 金鑰長度
set len=32
rem 大寫字母數量
set caplen=25
rem 數字數量
set numlen=10
rem 小寫字母數量
set noncaplen=24
rem 符號數量
set signlen=8
set key=
for /l %%i in (1,1,!len!) do (
set /a dig=%%i%%4
if !dig! equ 1 (
set /a n1=!random!%%!caplen!
set idx1=0
for /l %%a in (1,1,!caplen!) do (
if !n1! equ !idx1! (
set /a num=%%a
)set /a idx1+=1))
if !dig! equ 2 (
set /a n2=!random!%%!numlen!
set idx2=0
set /a minnum=!caplen!+1
set /a maxnum=!minnum!+!numlen!-1
for /l %%b in (!minnum!,1,!maxnum!) do (
if !n2! equ !idx2! (
set /a num=%%b
)set /a idx2+=1))
if !dig! equ 3 (
set /a n3=!random!%%!noncaplen!
set idx3=0
set /a minnoncap=!maxnum!+1
set /a maxnoncap=!minnoncap!+!noncaplen!-1
for /l %%c in (!minnoncap!,1,!maxnoncap!) do (
if !n3! equ !idx3! (
set /a num=%%c
)set /a idx3+=1))
if !dig! equ 0 (
set /a n4=!random!%%!signlen!
set idx4=0
set /a minsign=!maxnoncap!+1
set /a maxsign=!minsign!+!signlen!-1
for /l %%d in (!minsign!,1,!maxsign!) do (
if !n4! equ !idx4! (
set /a num=%%d
)set /a idx4+=1))
set idx=1
for /f %%j in (zdb.txt) do (
if !num! equ !idx! (
set key=!key!%%j
)set /a idx+=1))
echo 原始金鑰是!key!
echo.
set key1=
for /l %%z in (!len!,-1,1) do (
rem 取隨機索引
set /a idx=%random%%%%%z
rem 下乙個索引
set /a idx1=!idx!+1
call call set "o=%%%%key:~%%idx%%,1%%%%"
if !idx! equ 0 (
call call set "key=%%%%key:~%%idx1%%%%%%"
) else (
set /a maxidx=%%z-1
if !idx! geq !maxidx! (
set idx=!maxidx!
call call set "key=%%%%key:~0,%%idx%%%%%%"
) else (
call call set "key=%%%%key:~0,%%idx%%%%%%%%%%key:~%%idx1%%%%%%"))
set key1=!key1!!o!
)echo 亂序金鑰是!key1!
echo.
echo 最終金鑰是!key1!
echo.
pause
exit
zdb.txt**:
abc
defg
hijk
lmnp
qrst
uvwx
yz01
2345
6789
abcd
efgh
ijkm
npqr
stuv
wxyz
^~^!
^@^#
^$^%
^^^&
(全文完) 批處理實現mysql的備份
指令碼 echo off echo.echo mysql資料庫備份 echo echo.echo 今天是 date echo 時間是 time echo.echo 設定ymd變數為日期格式 yyyymmdd set ymd date 4 date 5,2 date 8,2 建立資料夾 md d jd...
批處理的寫法
有for迴圈的批處理 eg set file a,b set qp 27,28 注意 1 set後面的內容不能有空格。2 雙層迴圈之間要有 do 3 a和 a 不區分大小寫,所以如果寫成 a in a 就會出錯。20180424補充 for r i yuv s in yuv do cut.exe s...
JDBC的批處理
jdbc的批處理 1 批處理 一次性處理很多資料。解釋 有時候需要向資料庫傳送一批sql語句執行,這時應避免向資料庫一條條的傳送執行,而應採用jdbc的批處理機制,以提公升執行效率。2 兩種方式 statement statement stat conn.createstatement 建立語句 s...