扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:51CTO.COM 2007年10月18日
关键字:
在本页阅读全文(共3页)
Dim bit_count as integer '循环变量, 密码中位数计数器
dim row_num as integer '需生成密码的用户名信息开始的行号
dim rnd_base As Integer '随机数种子
Dim char_value As Integer '密码中每个字符的 ascii 值
Dim temp_str As String '密码串
Dim username(50) As String '用户名
dim pass_length as integer '定义生成的密码的长度
dim start_asc as integer ' 定义从哪个字符开始生成
pass_length = 8
start_asc = 48 ' 0
Rem start_asc = 65 ' A
rem 由于 unix 密码支持大小写,故,视所选择的起始字母,决定随机数的范围,以确保
rnd_base = 122 - start_asc
?
rem 打开文件,用于输出生成的改密码的脚本
Open "c:change_pass.txt" For Output As #1
rem 同时,在工作表上记录相应的密码,以便打印出来备作为记录,此处为先写标题
Cells(1, 3) = "Username": Cells(1, 4) = "Password"
row_num = 2
rem 若第三列非空,则创建密码,否则退出 Do While Cells(row_num, 3) <>""
temp_str = ""
For bit_count = 1 To pass_length
char_value = start_asc + Int(Rnd(1) * rnd_base)
rem 91-94 为 [ ] ^ _ `
rem 因不愿在unix 密码串中包含该类字符,故,通过减少已增大的计数器以保证密码的
长度,同时,不将其计入密码串中,以排除它们
If (char_value >= 58 And char_value <= 64) Or (char_value >= 91 And char_value <= 96) Then
bit_count = bit_count - 1
Else
temp_str = temp_str + Chr$(char_value)
End If
Next bit_count
Print #1, "user " + Cells(row_num, 1) + " : " + temp_str
Cells(row_num, 4) = temp_str
rem 获取下一行
row_num = row_num + 1
Loop
rem 所有用户的密码已生成,关闭文件
Close #1
End Sub
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。