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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
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 appliquer le formatage unicode, je ne sais pas mettre ce : N devant

Merci pour l'aide