EncryptByAsymKey

26/01/2009 - 12:07 von AndreT78 | Report spam
Hallo,
nachdem hier in den letzten Tagen oft das Thema Datenverschlüsselung aufkam,
bin ich auch neugierig geworden und habe etwas rumgespielt.

Das verschlüsseln klappt schon ganz gut, nur entschlüsseln klappt nicht so
wie es soll. Warum?

1. Schlüssel anlegen

create ASYMMETRIC KEY otto2
WITH ALGORITHM = RSA_2048
ENCRYPTION BY PASSWORD = 'dasisteintextmit25zeichen'

2. Daten verschlüsselt speichern

INSERT INTO testdb..crypt
values( N'''otto2''',
EncryptByAsymKey(AsymKey_ID('otto2'), 'geht keinen was an') )

3. Daten wieder auslesen -> hier hakt es.

SELECT CONVERT(nvarchar(255),
DecryptByAsymKey( AsymKey_Id('otto2'),
verschlossen, N'dasisteintextmit25zeichen' ))
AS DecryptedData
FROM testdb..crypt


Das Ergebnis ist immernoch verschlüsselt, allerdings optisch ein anderer wie
der wirklich verschlüsselte. Ist nur noch ein Bruchteil so lang.

Gruß Andre
 

Lesen sie die antworten

#1 Elmar Boye
26/01/2009 - 16:15 | Warnen spam
Hallo Andre,

AndreT78 schrieb:
nachdem hier in den letzten Tagen oft das Thema Datenverschlüsselung aufkam,
bin ich auch neugierig geworden und habe etwas rumgespielt.

Das verschlüsseln klappt schon ganz gut, nur entschlüsseln klappt nicht so
wie es soll. Warum?



Du zeigst nicht die Tabellenstruktur, evtl. liegt da das Problem.

Hier mal ein Beispiel das bei mir funktioniert:


CREATE ASYMMETRIC KEY TabelleAsymKey
WITH ALGORITHM = RSA_2048
ENCRYPTION BY PASSWORD = 'dasisteintextmit25zeichen'
GO

CREATE TABLE dbo.Tabelle
(
Id int NOT NULL IDENTITY(1, 1) PRIMARY KEY,
Klartext nvarchar(40) NOT NULL,
Verschlüsselt varbinary(256) NOT NULL,
)
GO

INSERT INTO dbo.Tabelle (Klartext, Verschlüsselt) VALUES(
N'''otto2''',
EncryptByAsymKey(ASYMKEY_ID('TabelleAsymKey'), N'''otto2''') )
GO

SELECT Klartext,
CONVERT(nvarchar(128),
DecryptByAsymKey(AsymKey_Id('TabelleAsymKey'),
Verschlüsselt,
N'dasisteintextmit25zeichen' ))
AS Verschlüsselt_In_Klartext
FROM dbo.Tabelle
GO


Gruß Elmar

Ähnliche fragen