linux md5密码生成器,密码生成工具 MD5 Autohotkey

gui, add, text, x0 y0 w100 h20, 项目名

gui, add, edit, x100 y0 w200 h20 vname

gui, add, text, x0 y20 w100 h20, 账户

gui, add, edit, x100 y20 w200 h20 vaccount

Gui, add, Checkbox, x0 y40 w300 h20 vlog, 记录到数据库

gui, add, edit, x0 y60 w300 h20 vpass

Gui, Add, Button, x0 y80 w300 h20 ggen, 生成密码

Gui, Show, , Thinkai的密码生成器

return

gen:

Gui, Submit, NoHide

md5 := MD5(MD5(name) "@xx@" account) ;此处为算法 32位MD5 可以自己改

b:=""

loop 14 ;此处做单数位大写处理 前十四位

{

c := SubStr(md5,A_index,1)

if (mod(A_index,2)=1)

StringUpper, c, c

b .= c

}

b .= "++" ;凑成16位 部分限制14位的比如百度就可以酌情复制

GuiControl, , pass, % Clipboard := b ;更新到结果框并复制到剪切板

if log ;此处通过途径记录到你的库里 或者写到文件里

URLDownloadToFile, http://xx.com/reg.php?name=%name%&account=%account%, %A_Temp%\xx.tmp

return

GuiClose:

ExitApp

MD5(string, encoding = "UTF-8")

{

return CalcStringHash(string, 0x8003, encoding)

}

CalcStringHash(string, algid, encoding = "UTF-8", byref hash = 0, byref hashlength = 0)

{

chrlength := (encoding = "CP1200" || encoding = "UTF-16") ? 2 : 1

length := (StrPut(string, encoding) - 1) * chrlength

VarSetCapacity(data, length, 0)

StrPut(string, &data, floor(length / chrlength), encoding)

return CalcAddrHash(&data, length, algid, hash, hashlength)

}

CalcAddrHash(addr, length, algid, byref hash = 0, byref hashlength = 0)

{

static h := [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, "a", "b", "c", "d", "e", "f"]

static b := h.minIndex()

hProv := hHash := o := ""

if (DllCall("advapi32\CryptAcquireContext", "Ptr*", hProv, "Ptr", 0, "Ptr", 0, "UInt", 24, "UInt", 0xf0000000))

{

if (DllCall("advapi32\CryptCreateHash", "Ptr", hProv, "UInt", algid, "UInt", 0, "UInt", 0, "Ptr*", hHash))

{

if (DllCall("advapi32\CryptHashData", "Ptr", hHash, "Ptr", addr, "UInt", length, "UInt", 0))

{

if (DllCall("advapi32\CryptGetHashParam", "Ptr", hHash, "UInt", 2, "Ptr", 0, "UInt*", hashlength, "UInt", 0))

{

VarSetCapacity(hash, hashlength, 0)

if (DllCall("advapi32\CryptGetHashParam", "Ptr", hHash, "UInt", 2, "Ptr", &hash, "UInt*", hashlength, "UInt", 0))

{

loop % hashlength

{

v := NumGet(hash, A_Index - 1, "UChar")

o .= h[(v >> 4) + b] h[(v & 0xf) + b]

}

}

}

}

DllCall("advapi32\CryptDestroyHash", "Ptr", hHash)

}

DllCall("advapi32\CryptReleaseContext", "Ptr", hProv, "UInt", 0)

}

return o

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值