Tôi đang tranh luận kiểu dữ liệu nào sẽ sử dụng khi lưu trữ giá trị băm SHA256 trong SQL Server. Nếu nó là CHAR (64) hoặc BINARY (32) ... Cột này sẽ là một phần của chỉ mục nhóm duy nhất. Tôi biết rằng tôi có thể tách lông vào thời điểm này, tuy nhiên tôi muốn làm điều này ngay lần đầu tiên và tôi biết rằng đôi khi các kiểu dữ liệu nguyên thủy nhanh hơn và các lần các kiểu mới kỳ lạ hơn hoạt động tốt hơn. (có tôi biết char (64) không phải là tất cả những gì mới, nhưng nó mới hơn so với lưu trữ byte)CHAR (64) hoặc BINARY (32) Để lưu trữ SHA256 Hash trong SQL SERVER
Tôi đã xem xét và không thể tìm thấy bất kỳ điều gì về hiệu suất của một so với khác về mặt tìm kiếm , v.v.
Điều này có hữu ích không? http://stackoverflow.com/questions/252156/sql-server-2005-what-data-type-to-use-to-store-passwords-hashed-by-sha-256-algo – dcaswell
Tôi sẽ sử dụng nhị phân (32) đơn giản vì không có lý do gì tôi có thể tranh luận về char (64) - lý do duy nhất tại sao tôi tranh luận sau này là tất cả công việc được thực hiện hầu như chỉ qua CLI (nhưng sau đó chức năng chuyển đổi có thể được sử dụng để tương tác với con người) . Lập trình, xử lý dữ liệu thô dễ dàng, nếu không dễ dàng hơn. Nó cũng cho kết quả trong không gian hơi ít hơn (-> bao giờ để chỉ số nhỏ hơn/bao giờ so sánh nhanh hơn như vậy) và kể từ khi tôi không thể tranh luận cho char (64), cũng có thể chỉ mất lợi ích miễn phí. – user2246674
Từ những gì tôi thấy nhị phân (32) có một chút của một cạnh trên char (64) và tôi sẽ chỉ sử dụng cột đó ở phía SQL. Mặt khác của phương trình như đã được đề cập ở đây là khả năng sử dụng trong mã, tuy nhiên tôi muốn đạt được rằng cạnh nhỏ và chỉ ăn phức tạp dev thêm nếu bất kỳ thực sự tồn tại. Vì vậy .. Tôi sẽ sử dụng BINARY (32). http://stackoverflow.com/a/16993150/128795 – kroolk