3KyNoX
Messages postés17Date d'inscriptionlundi 21 janvier 2008StatutMembreDernière intervention12 novembre 2009
-
11 nov. 2008 à 21:26
3KyNoX
Messages postés17Date d'inscriptionlundi 21 janvier 2008StatutMembreDernière intervention12 novembre 2009
-
12 nov. 2008 à 12:05
Bonjour.
Voici une question un peu bête mais j'utilise donc EncryptByPassPhrase pour crypter le contenu d'une textox de type password en ASP.NeT dont voici la syntaxe sous SQL Server 2008 Express :
DECLARE @PassPhrase nvarchar(50)
SET @PassPhrase = N'test'
DECLARE @EncryptedPassword varbinary(256)
SET @EncryptedPassword = EncryptByPassPhrase(@PassPhrase , N'123456789', NULL)
J'utilise donc un mot clef "test" pour crypter le contenu "123456789".
Vous noterez que les "N" juste avant le passphrase et le mot de passe servent à indiquer que le texte est en caractères unicode.
Quant je veux récupérer le contenu de ma colonne "MotDePasse" par DecryptByPassPhrase, jusque là, pas de soucis, cela fonctionne bien.
Mon souci, c'est que quand je souhaite intégrer ce code à l'intérieur d'une procédure stockée, je récupère le mot de passe en paramètre, et pas moyen de mettre le N pour le unicode devant. Et si je ne met pas ce N devant le mot de passe, le decryptage ne se fait pas correctement...
Exemple :
ALTER PROCEDURE dbo.blablabla
@MotDePasse varchar(50)
AS
BEGIN
SET NOCOUNT ON
DECLARE @PassPhrase nvarchar(50)
SET @PassPhrase = N'cow'
DECLARE @EncryptedPassword varbinary(256)
SET @EncryptedPassword = EncryptByPassPhrase(@PassPhrase , @MotDePasse, NULL)
RETURN
END
Avec la variable @MotDePasse, donc, je ne sais pas mettre ce : N devant
SET @EncryptedPassword = EncryptByPassPhrase(@PassPhrase , @MotDePasseModifie, NULL)
INSERT INTO dbo.aspnet_Colocation (Colocation, MotDePasse)
VALUES (@Colocation, @EncryptedPassword)
RETURN
END
En clair il fallait créer une autre variable (@MotDePasseModifie) et
appliquer le "N''" à l'intérieur et concaténer @MotDePasseModifie avec
@MotDePasse.