none
HashBytes를 이용한 암호화시.. RRS feed

  • 질문

  • 기존 저장된 데이타를 HashBytes를 이용한 암호화시.. 기존 저장된 필드의 속성이 varchar() 형태와 nvarchar()형태의 차이점이 있나요?

    기존 HashBytes 를 이용한 암호화 예시안을 보면 varchar() 형태인데..nvarchar() 형태시 문제점이 있는지 있다면 해소방안이 있는지 궁금합니다.

    2011년 9월 29일 목요일 오전 3:50

모든 응답

  • 안녕하십니까? nimbbong

    Microsoft TechNet Forum 사이트를 방문해 주셔서 감사합니다.

     

    고객님께서 문의하신 내용이 중복되어 마지막으로 문의하신[DBMS & 어플리케이션 플랫폼] SQL Server 카테고리의 " HashBytes를 이용한 암호화시.."에 답변 드리도록 하겠습니다.

     

    제가 문제에 대해 더 알아야 할 것이 있다면 응답 주시면 감사하겠습니다.

    제시해 드린 답변이 도움이 되었기를 바랍니다.

    2011년 9월 29일 목요일 오전 5:31
    중재자
  • DECLARE @HashThis nvarchar(4000);
    SELECT @HashThis = CONVERT(nvarchar(4000), N'A');
    SELECT HashBytes('SHA1', @HashThis);
    GO
    -- 0xEF420ABFDDBDA7B9EE665D85EF62E4A437554003

    DECLARE @HashThis VARBINARY(4000);
    SELECT @HashThis = CONVERT(VARBINARY(4000),0x4100);    -- N'A' = 0x4100
    SELECT HashBytes('SHA1', @HashThis);
    GO
    -- 0xEF420ABFDDBDA7B9EE665D85EF62E4A437554003

    DECLARE @HashThis varchar(4000);
    SELECT @HashThis = CONVERT(varchar(4000),'A');
    SELECT HashBytes('SHA1', @HashThis);
    GO
    -- 0x6DCD4CE23D88E2EE9568BA546C007C63D9131C1B

    DECLARE @HashThis VARBINARY(4000);
    SELECT @HashThis = CONVERT(VARBINARY(4000),0x41);   -- 'A' = 0x41
    SELECT HashBytes('SHA1', @HashThis);
    GO
    -- 0x6DCD4CE23D88E2EE9568BA546C007C63D9131C1B

    NVARCHAR는 2바이트로 적용이 됩니다.

    그래서 결과 값이 다르게 됩니다.

    2011년 10월 21일 금요일 오전 8:02