PDA

View Full Version : سوال: الگوریتم ایجاد کلمات عبور موقت



mehrdad201
چهارشنبه 27 آبان 1388, 20:49 عصر
فکر میکنم خیلی از دوستان با خدمات اینترنت بانک بانکهای صادرات و ملی اشنایی دارند

این بانکها یه دستگاهی میدن به مشتری به اسم دستگاه رمز

وقتی کاربر میخواد وارد سایت اینترنت بشه این دستگاه یه رمزی در اختیارش قرار میده که به کمک اون میتونه لاگین کنه

رمز ها هم داینامیک هست

مثلا الان یه رمز میده و 5 دقیقه بعد یه رمز دیگه

میخواستم ببینم کسی از دوستان با این الگوریتم رمز سازی و اعتبار سنجی اشنایی داره ؟

نیاز به این الگوریتم داشتم.

ممنون میشم بنده رو راهنمایی کنید.

mehrdad201
شنبه 30 آبان 1388, 11:58 صبح
کسی از دوستان در این زمینه اطلاعاتی نداره؟

mortezamsp
شنبه 30 آبان 1388, 21:49 عصر
در مورد بانک ها قضیه اینه که هرکس یه دستگاه otp مخصوص به خودشو داره که این دستگاه امضای دیجیتالی مخصوص اون فرد رو در خودش داره
.وقتی میخوای تو سایت لاگ این بشی اول سایت یه عدد چهاررقمی تصادفی به تو میده و تو باید اونو تو otp وراد کنی و otp باتوجه به امضای مخصوص تو یه عددچهاررقمی جدید میسازه.خود سایت که امضای تو رو داره ، هم باتوجه به امضای تو یه عدد چهاررقمی میسازه و بعد این دوتا کد رو با هم مقایسه میکنه که اگه برابر بود لاگ این میشی.

ضمنا استفاده از دستگاه هم برای بالا بردن امنیت بوده.

شرمنده دیگه بیشتر از این بلد نیستم...

mehrdad201
یک شنبه 01 آذر 1388, 00:03 صبح
دقیقا درست میفرمایید

مکانیزم این سیستمها همینه. اما من فکر میکنم چون این رمزها در هر بازه زمانی متغیر هستند یه جورایی بین این رمزهای تولید شده و زمان ساختش رابطه ای هست.

من میخوام این روش پیدا کنم
یعنی روش تولید رمز + روش اعتبار سنجیش

#Elahe#
جمعه 06 آذر 1388, 00:43 صبح
آخه اول بگید واسه کدوم زبان میخواهید اینو
مثلاً این واسه سرور اس کیو ال هستش


/************************************************** *************************
* Created By: Raymond Lewallen
* Date: 05/16/2005
* Purpose: Generate a random string of given length
*
* Comments: Everything is self-explanatory. Right now
* max length is set to 100. So anything between 1
* and 100 will work for a length.
*
* If you specify a @charactersToUse,
* the bit flags get ignored.
*
* All spaces are stripped from the
* @charactersToUse.
*
* Characters can repeat. Will be
* handled in a future version.
************************************************** *************************/
CREATE procedure dbo.GenerateRandomString (
@useNumbers bit,
@useLowerCase bit,
@useUpperCase bit,
@charactersToUse as varchar(100),
@passwordLength as smallint,
@password varchar(100) OUT
)
As
Begin
if @passwordLength <= 0
raiserror('Cannot generate a random string of zero length.',16,1)
declare @characters varchar(100)
declare @count int
set @characters = ''
if @useNumbers = 1
begin
-- load up numbers 0 - 9
set @count = 48
while @count <=57
begin
set @characters = @characters + Cast(CHAR(@count) as char(1))
set @count = @count + 1
end
end
if @useLowerCase = 1
begin
-- load up uppercase letters A - Z
set @count = 65
while @count <=90
begin
set @characters = @characters + Cast(CHAR(@count) as char(1))
set @count = @count + 1
end
end
if @useUpperCase = 1
begin
-- load up lowercase letters a - z
set @count = 97
while @count <=122
begin
set @characters = @characters + Cast(CHAR(@count) as char(1))
set @count = @count + 1
end
end
set @count = 0
set @password = ''
-- If you specify a character set to use, the bit flags get ignored.
if Len(@charactersToUse) > 0
begin
while charindex(@charactersToUse,' ') > 0
begin
set @charactersToUse = replace(@charactersToUse,' ','')
end
if Len(@charactersToUse) = 0
raiserror('Cannot use an empty character set.',16,1)
while @count <= @passwordLength
begin
set @password = @password + SUBSTRING(@charactersToUse,CAST(ABS(CHECKSUM(NEWID ()))*RAND(@count) as int)%LEN(@charactersToUse)+1,1)
set @count = @count + 1
end
end
else
begin
while @count <= @passwordLength
begin
set @password = @password + SUBSTRING(@characters,CAST(ABS(CHECKSUM(NEWID()))* RAND(@count) as int)%LEN(@characters)+1,1)
set @count = @count + 1
end
end
end
GO