扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:51CTO.COM 2007年10月18日
关键字:
在本页阅读全文(共3页)
实际上,这种方法产生的密码不限于 unix 与 Oracle, 可用于各种操作系统中重要用户
Sub gen_pass_app()
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 ' 设定密码长度为 8 位
Rem start_asc = 48 ' 设定密码从 0 开始
start_asc = 65 ' 设定密码从 A 开始
rem 由于 Oracle 数据库用户密码不区分大小写,故,视所选择的起始字母,决定随机数
rnd_base = 90 - start_asc
?
rem 打开文件,用于输出生成的改密码的脚本
Open "c:change_pass.sql" For Output As #1
rem 同时,在工作表上记录相应的密码,以便打印出来备作为记录,此处为先写标题
Cells(1, 1) = "Username": Cells(1, 2) = "Password"
Cells(1, 3) = "Username": Cells(1, 4) = "Password"
rem 先生成 apps 的密码,但脚本中加上注释,因 apps密码必须与应用程序一起改
rem 先初始化密码串为空白
temp_str = ""
For bit_count = 1 To pass_length
char_value = start_asc + Int(Rnd(1) * rnd_base)
rem 此处为为防=号引起 excel 误认为是公式,从而程序出错。
If char_value = 61 Then
char_value = 62
End If
rem 组合成密码
temp_str = temp_str + Chr$(char_value)
Next bit_count
rem 将生成的 apps 密码输出到脚本文件
Print #1, "REM alter user apps" + " identified by " + temp_str + ";"
rem 同时,记录在工作表上
Cells(2, 3) = "APPS": Cells(2, 4) = temp_str
rem 需生成密码的用户名从 row_num 行开始
row_num = 2
rem 若第一列非空,则创建密码,否则退出 Do While Cells(row_num, 1) <>""
temp_str = ""
For bit_count = 1 To pass_length
char_value = start_asc + Int(Rnd(1) * rnd_base)
If char_value = 61 Then
char_value = 62
End If
temp_str = temp_str + Chr$(char_value)
Next bit_count
Print #1, "alter user " + Cells(row_num, 1) + " identified by " + temp_str +
Cells(row_num, 2) = temp_str
rem 获取下一行
row_num = row_num + 1
Loop
rem 所有用户的密码已生成,关闭文件
Close #1
End Sub
?
Sub gen_pass_unix()
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。