네트워커의 보안 티스토리

  • ; Captcha example by Titan
  •  
  • GuiAddText, x10 y10 w75, Enter the code:
  • Pass := Captcha(9010)
  • GuiAddEdit, vInput x90 y50 w50
  • GuiAddButton, gGo default x145 y50 h20, Enter
  • GuiShow, , Captcha
  •  
  • Go:
  • If Input != % Pass
  •   MsgBox16Error, You didnt enter the code correctly!`n`nThe code was: %Pass%
  •   MsgBox64, Cool, done!`n`nThe code was: %Pass%
  •  
  • ~Esc::
  •  
  • Captcha(x, y, len=6, lvl=0gui=1)
  • {
  •   ; Captcha by Titan
  •   w := len * 15 + 10
  •   h := 35
  •   Gui, %gui%: AddTextBorder Section x%x% y%y% w%w% h%h%
  •   xw := x + 10
  •   Loop, % len
  •   {
  •     GuiFont, % Random("Styles") "w" Random("Number"11000) "s" Random("Number"812) "c" Random("Colour")Random("Font")
  •     key := Pass(1)
  •     keys = %keys%%key%
  •     yw := "ys+" Random("Number"310)
  •     Gui, %gui%: AddTextBackgroundTrans x%xw% %yw%, % key
  •     xw += % Random("Number"1015)
  •   }
  •   GuiFont
  •   if (lvl = 1)
  •   {
  •     yw = 5
  •     Loop, % ( Floor(w/3))
  •       dots = %dots%.
  •     Loop5
  •     {
  •       GuiFont, % "w1" "c" Random("Colour")
  •       Gui, %gui%: AddTextBackgroundTrans + Wrap x%x% y%yw% w3, % dots
  •       yw += 5
  •     }
  •     GuiFont
  •   }
  •   Return, % keys
  • }
  •  
  • Pass(len=5, chars=0)
  • {
  •   ; Captcha module by Titan
  •   chAlpha = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
  •   chNum = 1234567890
  •   chAlphaNum = %chAlpha%%chNum%
  •   If chars in 0,alphanum
  •     StringSplitlist, chAlphaNum
  •   else If chars in 1alpha
  •     StringSplitlist, chAlpha
  •   else If chars in 2,num
  •     StringSplitlist, chNum
  •   Loop, % len
  •   {
  •     Random, rnd, 1, % list0
  •     i := list%rnd%
  •     pass = %pass%%i%
  •   }
  •   Return, pass
  • }
  •  
  • Random( type, p1=0, p2=0)
  • {
  •   ; Captcha module by Titan
  •   If type in Number
  •     Random, r, % p1, % p2
  •   else If type in Font
  •   {
  •     Fonts = Arial,Courier,Courier New,Lucida Console,MS Sans Serif,MS Serif,Tahoma,Times New Roman
  •     StringSplit, Fonts, Fonts, `,
  •     Random, r, 1, %Fonts0%
  •     r := Fonts%r%
  •   }
  •   else If type in Colour
  •   {
  •     Colours = Black,Green,Silver,Lime,Gray,Olive,White,Yellow,Maroon,Navy,Red,Blue,Purple,Teal,Fuchsia,Aqua
  •     StringSplit, Colours, Colours, `,
  •     Random, r, 1, %Colours0%
  •     r := Colours%r%
  •   }
  •   else If type in Styles
  •   {
  •     Styles = boldunderlinenorm,0x7,0x4,0x1,0x10,0x11,0x8,0x5,0xC,0x80,0x100,0x2,0x1000,0x9,0x6
  •     StringSplit, Styles, Styles, `,
  •     Random, r, 1, %Styles0%
  •     r := Styles%r%
  •   }
  •   Return, % r
  • }


  • 출처: http://nimto.tistory.com/691 [ㄴrㅎnㅂrㄹrㄱi]