View in color | License | Download script | History | Other scripts by: mike |
10-Oct 5:41 UTC
[0.056] 13.768k
[0.056] 13.768k
pword.rREBOL [
File: %pword.r
Date: 19-Jun-2005
Title: "Password Generation"
Purpose: "Create passwords based on a Pass Phrase"
Version: 1.0
Author: "Cybarite"
Source: {
Greg's REBOL implementation of a password JavaScript function.
Maxim's UI from AltME
}
library: [
level: 'beginner
platform: 'all
type: [tool]
domain: [security ]
tested-under: [view 1.3.1.3.1 on W2K]
support: [AltME]
license: none
see-also: none
]
]
generate-password-value: func [
{Creates a password based on the MD-5 value from
a pass-phrase phrase, a site or device name,
and an optional date-variable}
pass-phrase [string!]
site-or-device [string!]
{The name of a site or device}
date-variable [string!]
{Allows the password to vary by month where you are required to change monthly}
/include-special-character ; this is for passwords that require some special character to be included
][
third-parm: either date-variable = "None" [
{}
][
join ":" date-variable
]
result: to-hex to-integer checksum/method rejoin [pass-phrase ":" site-or-device third-parm] 'md5
either include-special-character [
join result "%"
][
result
]
]
clearing: does [
if not clip-only/data [
password-text-field/text: copy {}
show password-text-field
]
write clipboard:// {} ; clear the clipboard too
]
bg-color: 65.125.175
view layout [
size 400x326
tabs [130 160]
backdrop effect [gradient 1x1 bg-color 45.75.115 grid 500x4 499x4 70.130.190 blur] ; from Didier
style label label white
style TL text-list
with [
size: 200x60 ; default these text-list sizes for consistency
update-slider: does [
sld/redrag lc / max 1 length? head lines
]
picked: 1
]
across
image logo.gif (bg-color) [browse http://www.rebol.com] ; the rebol logo with a page background color
return
clip-only: check [
either value [
hide [label-password password-text-field]
][
show [label-password password-text-field]
]
]
label 300 "Write password to clipboard only"
return
special-check: check [] label "Add special character '%'"
return
label 100 "Your Secret Pass Phrase " tab pass-phrase-phase: area 200x40 wrap [
clearing
]
toggle 46 "Hide" "Show" effect [
gradient 1x1 bg-color 45.75.115 grid 500x4 499x4 70.130.190 blur
][
either value [
hide pass-phrase-phase
][
show pass-phrase-phase
]
]
return
label 100 "Site/Device" tab
sites: TL data [ ; replace this list of sites or devices with your values
"VPN"
"email"
"Server"
"ISP"
"AltME REBOL"
"Router"
][
clearing
]
do [append clear sites/picked first sites/data]
return
label 100 "Dates" tab dates: TL data [
"None"
"Jun-2005" ; replace this list of dates with your values (keep "None" first)
"Jul-2005"
"Aug-2005"
"Sep-2005"
"Oct-2005"
"Nov-2005"
"Dec-2005"
"Jan-2006"
][
clearing
]
do [append clear dates/picked first dates/data]
btn "Help" [alert
{For expirying passwords enter a date value here e.g. Jun-2005. Use a standard convention whatever it is.}
]
return
label-password: label "Password" tab password-text-field: info "" 200 silver white
btn "Go" [
password-text-field/text: either special-check/data [
generate-password-value/include-special-character pass-phrase-phase/text first sites/picked first dates/picked
][
generate-password-value pass-phrase-phase/text first sites/picked first dates/picked
]
write clipboard:// form password-text-field/text
if not clip-only/data [
show [password-text-field]
]
]
do [focus pass-phrase-phase]
] |