Как зашифровать в SQL Server без участия varbinary

Я знаю, что есть такие функции, как ENCRYPTBYPASSPHRASE для симметричного шифрования, но я ищу в SQL Server способ зашифровать поле, чтобы я мог передать зашифрованную строку как часть URL-адреса во внешний мир, в varchar или nvarchar. На самом деле я не хочу, чтобы вывод шифрования сохранялся в поле varbinary, а скорее сидел в nvarchar.

Это нормально, если алгоритм не является сильным, мне просто нужно, чтобы он выводил результат в URL-адрес.

Есть ли способ добиться этого?


person Farshid    schedule 18.01.2016    source источник
comment
Рассмотрите возможность использования Hashing в этом случае.   -  person Rahul    schedule 18.01.2016
comment
@Rahul Мне нужно расшифровать его позже. Это будет способ передачи идентификатора строки в URL   -  person Farshid    schedule 18.01.2016
comment
Я имею в виду расшифровку интерпретатором URL в моем веб-приложении.   -  person Farshid    schedule 18.01.2016
comment
Можете ли вы попытаться объяснить свои требования более четко? Пока он сидит прямо сейчас, я действительно не понимаю, что вы пытаетесь здесь сделать.   -  person Sean Lange    schedule 18.01.2016
comment
Хранить как varbinary, а затем кодировать Base64 в строку?   -  person Alex K.    schedule 18.01.2016
comment
@SeanLange Предположим, у меня есть идентификатор строки. Я хочу иметь URL-адрес веб-страницы, такой как x.com/go/ID, но я не хочу, чтобы у пользователей был шаблон для всех записей, таких как /go/1, /go/2 и так далее. Из-за этого я хочу создать URL-адрес типа /go/hashed вместо /go/1, передав URL-адрес наружу с обратимым зашифрованным идентификатором.   -  person Farshid    schedule 18.01.2016
comment
Я решил использовать уникальные идентификаторы.   -  person Farshid    schedule 18.01.2016
comment
Это отличная ситуация для использования GUID. Если у вас есть столбец uniqueidentifier в вашей таблице, вы можете передать его вместо идентификатора (здесь я предполагаю идентичность). Это просто, потому что его нелегко угадать и не требуется никаких дополнительных усилий для его кодирования и декодирования. Об этом позаботится простое предложение where.   -  person Sean Lange    schedule 18.01.2016
comment
Возможный дубликат stackoverflow.com/q/12139073/1967612   -  person Anti-weakpasswords    schedule 03.02.2016