今天我接到一个任务,要生成一个九位的随机密码!
要数字0-9 字母 A-F
随机取这里面的字母和数字。只要九位。
请问各位前辈应该如何去做!我确实没做过这方面开发!
------解决方案--------------------
- SQL code
--参考:declare @maxNumber int, --随机数最大值 @minNumber int, --随机数最小值 @rows int --要取得的行数 select @maxNumber=10000, @minNumber=10000, @rows=10 set rowcount @rows select distinct '1234 4567 '+convert(varchar,ID)+' '+convert(varchar,ID)+' '+convert(varchar,ID)+' '+convert(varchar,ID) as 'B' from ( select convert(int,rand(checksum(newid()))[email protected]) as ID from syscolumns,sysobjects )t set rowcount 0 -----------------------------------declare @num1 int ,@num2 int ,@num3 int ,@num4 int set @num1=rand(abs(convert(int,checksum(newid()))))*10000set @num2=rand(abs(convert(int,checksum(newid()))))*10000set @num3=rand(abs(convert(int,checksum(newid()))))*10000set @num4=rand(abs(convert(int,checksum(newid()))))*10000 select convert(varchar(100),@num1)+' '+convert(varchar(100),@num2)+' '+convert(varchar(100),@num3)+' '+convert(varchar(100),@num4)---------------------------------------declare @r1 numeric (15,0),@r2 numeric (15,0)SELECT @r1=RAND( (DATEPART(mm, GETDATE()) * 100000 ) + (DATEPART(ss, GETDATE()) * 1000 ) + DATEPART(ms, GETDATE()) )*10000print @r1
------解决方案--------------------
------解决方案--------------------
- SQL code
--把2楼的写成个函数--见newid视图create view v_newid as select [id] = newid()--建函数,获取随即9位数据+字母密码create function f_getRandPassword9()returns varchar(9)asbegin declare @result varchar(9) select @result = right(id,9) from v_newid; return @result;end--查询结果select dbo.f_getRandPassword9()--结果/*---------357771BF6(1 行受影响)*/
------解决方案--------------------
select right(newid(),9) 最好,而且简单
------解决方案--------------------
可能重复的几率有多大呀。 很少遇到重复,不信你试试。
------解决方案--------------------
------解决方案--------------------
我的经验是,先设定一个字符串"0123456789ABCDEF",这个16位字母,
然后随机取一个字符,连续抽取9个随机字符拼成密码。
------解决方案--------------------
.NET code
/// <summary>
/// 生成长度为9的随机数
/// </summary>
/// <returns>随机数字(包括字母)</returns>
public string RandomCode()
{
//生成的单个随机数
int ii生成的随机数;
//生成的单个随机数经过运算转换成的字符
char cc单个字符;
//待生成的随机数(包括字母)
string ss随机数字 = String.Empty;
//随机数生成器
Random ooRandom = new Random();
for (int i = 0; i < 9; i++)
{
//生成长度为9的随机数
ii生成的随机数 = ooRandom.Next();
if (ii生成的随机数 % 2 == 0)
//纯数字
cc单个字符 = (char)('0' + (char)(ii生成的随机数 % 10));
else
//字母数字混合
cc单个字符 = (char)('A' + (char)(ii生成的随机数 % 26));
ss随机数字 += cc单个字符.ToString();