powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / sysxlogins.password
5 сообщений из 5, страница 1 из 1
sysxlogins.password
    #32009142
chisel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
возможно-ли разшифровать пароли из master.sysxlogins если да то подсажите как
спасибо!
...
Рейтинг: 0 / 0
sysxlogins.password
    #32009146
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ра с шифровать пароли невозможно в принципе. По-моему это одно из тербований С2 или еще чего-то в этом роде(мне так кажется).

Зато можно зашифровать пароль, есть такая недокументированная функция pwdencrypt, с помощью которой и заполняются поля в таблице sysxlogins.

select pwdencrypt('123')
...
Рейтинг: 0 / 0
sysxlogins.password
    #32009154
Фотография Александр Гладченко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На эту же тему:
--**************************************
-- for :Random Pronouncable Password
--**************************************
Copyright (c) 2001, Lewis Edward Moten III, All rights reserved.

--**************************************
-- Name: Random Pronouncable Password
-- Description:Procedure made in order to create a random password that is somewhat pronouncable and easy to remember.
-- By: Lewis Moten
--
--
-- Inputs:None
--
-- Returns:None
--
--Assumes:tested only with SQL Server 2000
--
--Side Effects:None
--This code is copyrighted and has limited warranties.
--Please see http://www.Planet-Source-Code.com/xq/ASP/txtCodeId.320/lngWId.5/qx/vb/scripts/ShowCode.htm
--for details.
--**************************************

CREATE PROCEDURE [dbo].[AccountUsers_RandomPassword]
(
@MinLength smallint = 5,
@MaxLength smallint = 8
)
AS
/*
Description:
Procedure made in order to create a random password that is somewhat pronouncable and easy to remember.
Assumptions:
This procedure assumes your are expecting a password data type of nvarchar(16)
Details:
Password length can be defined by suggesting the minimum and maximum length. For fixed
size passwords, you may suggest the same number for both minimum and maximum
(i.e. - EXEC AccountUsers_RandomPassword 8, 8 )
Author:
Created by Lewis Edward Moten III on Saturday, July 07, 2001
email: lewis@moten.com
url
: http://www.lewismoten.com
Copyright (c) 2001, Lewis Edward Moten III, All rights reserved.
You may alter the text for your own database only to esure proper working conditions against your
database (i.e. - Changing the location of the table where user names reside and the field name)
If you redistribute the code, you must include the original content including copyright and contact
information.
*/
declare @Password nvarchar(16)
declare @Length smallint
declare @WriteConsonant bit
declare @Position smallint
declare @Vowels nchar(5)
declare @Consonants nchar(16)
declare @DoubleConsonants nchar(11)
declare @Random smallint
declare @LetterPosition int
declare @Letter nchar(1)
select @Vowels = 'aeiou'
select @Consonants = 'bcdfghjklmnprstv'
select @DoubleConsonants = 'cdfglmnprst'
select @Password = ''
select @WriteConsonant = 1
-- determine length
Select @Length = @MinLength + Round(Rand() * (@MaxLength - @MinLength), 0, 0)
Select @Position = 1
while @Position <= @Length


begin
select @Random = Round(Rand() * 100, 0, 0) + 1
-- 10% double consonants
if not @Password = '' and @WriteConsonant = 1 and @Random < 10
begin
select @LetterPosition = Convert(int, Round((Rand() * (Len(@DoubleConsonants)-1)), 0, 0), 1) +1
select @Letter = SubString(@DoubleConsonants, @LetterPosition, 1)
select @Password = @Password + Replicate(@Letter, 2)
select @Position = @Position + 1 -- because we just took up 2 positions
select @WriteConsonant = 0
end
else
begin
-- 80% consonants
if @WriteConsonant = 1 and @Random < 90
begin
select @LetterPosition = Convert(int, Round((Rand() * (Len(@Consonants)-1)), 0, 0), 1) + 1
select @Letter = SubString(@Consonants, @LetterPosition, 1)
select @Password = @Password + @Letter
select @WriteConsonant = 0
end
-- 10% vowels
else
begin
select @LetterPosition = Convert(int, Round((Rand() * (Len(@Vowels)-1)), 0, 0), 1) + 1
select @Letter = SubString(@Vowels, @LetterPosition, 1)
select @Password = @Password + @Letter
select @WriteConsonant = 1
end
end
select @Position = @Position + 1 -- incriment counter
end
-- just in case that last character was a double consonant
select @password = Left(@Password, @length)
-- return password
SELECT @password As [Password]
GO
...
Рейтинг: 0 / 0
sysxlogins.password
    #32009158
Alexander Chepack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Относительно невозможности расшифровки паролей - есть такая функция

pwdcompare (UnEncryptedPassword, EncryptedPassword)

- если Ваша установка SQL Server'а нечувствительна к регистру (т.е. 'PASSWPORD'='password') - так вот в этом случае эта функция возвращает одинаковый результат для строк, отличающихся только регистром. Т.е.

если Ваш пароль, например 'password', то функция pwdencrypt вернет
разные значения для 'password' и 'PASSWORD', а вот функция pwdcompare
вернет одни и те же значения для вызовов:

pwdcompare ('password',@EncryptedPassword)
pwdcompare ('PASSWORD',@EncryptedPassword)

из чего я делаю вывод, что внутри эта функция сначала расшифровывает пароль, а потом сравнивает результат расшифровки с первым параметром, при этом используются текущие правила сравнения строк на SQL Server'е...

Повторяю - зашифрованные пароли для 'password' и 'PASSWORD' - разные...
Так что похоже расшифровать можно - теоретически.
...
Рейтинг: 0 / 0
sysxlogins.password
    #32009166
dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>если Ваш пароль, например 'password', то функция pwdencrypt вернет
>разные значения для 'password' и 'PASSWORD'

Функция pwdencrypt вернет разные значения даже при повторном вызове ее с тем же паролем. Т.е. оно похоже зависит от времени. "При повторном вызове" - имеется ввиду если между вызовами прошло сколь нибудь значимое время - например между ними операция, требующая времени или повторный вызов пакета.
Так что наверное все же используется однонапрвленное шифрование и пароль не расшифровывается.
Но вообще то все это предположения, я ничего точно утверждать не могу, потому как не уверен. Но если кто знает, то было бы интересно прочитать. Или получить ссылочку о том как это работает...
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / sysxlogins.password
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]