Tôi cần phải băm (MD5) tất cả mật khẩu trong cơ sở dữ liệu Sql Server 2000 của chúng tôi. Tôi có thể dễ dàng tạo ra một chương trình C#/VB.NET để chuyển đổi (băm) tất cả các mật khẩu, nhưng tôi đã tự hỏi (nhiều hơn cho giáo dục của tôi hơn là một nhu cầu hấp dẫn thực sự) nếu nó có thể tính toán MD5 hash trực tiếp trong T-SQL.
Nhờ bất kỳ ai sẽ trả lời.Có thể tính toán hàm băm MD5 trực tiếp trong ngôn ngữ T-SQL không?
Trả lời
Đang sử dụng mã này nhưng không phải là ngôn ngữ gốc.
Cảm ơn bạn rất nhiều. Tôi hy vọng sẽ tìm cách để làm điều đó trực tiếp với các câu lệnh SQL, nhưng điều này cũng tốt! –
Năm 2005 và sau đó, bạn có thể gọi HashBytes() chức năng. Năm 2000, điều gần nhất là pwdencrypt/pwdcompare, mặc dù những chức năng đó có những cạm bẫy riêng của họ (đọc các nhận xét của liên kết).
Cảm ơn bạn rất nhiều vì đã trả lời. Cuối cùng, tôi chọn câu trả lời của Daniel bởi vì tôi đang tìm kiếm băm MD5, nhưng câu trả lời của bạn rất gần và gợi ý về pwdencryt/pwdcompare khiến tôi học được điều gì đó thật sự thú vị. –
Không, không có lệnh TSQL bản địa để tạo MD5 hash trong SQL Server 2000.
Năm 2005 trở lên bạn có thể sử dụng HashBytes
chức năng: http://msdn.microsoft.com/en-us/library/ms174415.aspx
Mặc dù tôi đã chọn một câu trả lời khác, dù sao tôi vẫn muốn cảm ơn bạn rất nhiều vì đã trả lời của bạn. –
Không có gì huyền diệu về md5 là, bạn có thể thực hiện nó như một hàm tsql tinh khiết nếu bạn muốn. Tôi không chắc chắn nó sẽ là niềm vui trong TSQL, nhưng có nên không có gì ngăn cản bạn làm như vậy :)
Xin vui lòng xem bên dưới ví dụ/giải pháp sử dụng 2008
DECLARE @HashThis nvarchar(4000);
SELECT @HashThis = CONVERT(nvarchar(4000),'dslfdkjLK85kldhnv$n000#knf');
SELECT HashBytes('md5', @HashThis);
GO
Chỉ cần cho các hồ sơ:
UPDATE T_WHATEVER_YOUR_TABLE_NAME_IS
SET PREFIX_Hash = LOWER(SUBSTRING(master.dbo.fn_varbintohexstr(HashBytes('MD5', LOWER('a-string-with-utf8-encoded-international-text'))), 3, 32))
- 1. Java tính toán MD5 băm
- 2. Đang tính toán băm MD5 của một chuỗi trong scala
- 3. MD5 băm tính toán khác nhau trên máy chủ
- 4. Đệm trong thuật toán băm MD5
- 5. Tính toán loại trực tiếp
- 6. Có thể tính giá trị băm MD5 (hoặc khác) với số lần đọc đệm không?
- 7. API WinRT được quản lý có bao gồm cách tính toán băm MD5 không?
- 8. Ngôn ngữ lập trình có nên trực quan không?
- 9. Băm MD5 trong silverlight
- 10. Tính toán hàm băm SHA256 trong Android/Java và C#
- 11. Có hàm băm glibc không?
- 12. Kết hợp các giá trị băm MD5
- 13. Bắt kiểm tra tệp trực tiếp từ hệ thống tệp thay vì tính toán rõ ràng
- 14. Làm các hàm băm mật mã tiếp cận từng giá trị có thể, ví dụ: họ có tính từ không?
- 15. Tuần tự hóa trạng thái tính toán MD5 và tiếp tục sau?
- 16. Có ngôn ngữ nhanh hỗ trợ tính năng tiếp tục di động không?
- 17. Tính toán băm từ một luồng có độ dài không xác định trong C#
- 18. Tại sao "băm ('md5', 'chuỗi')" nhanh hơn "md5 ('chuỗi')"?
- 19. băm jquery nếu không có hàm băm
- 20. Tài nguyên ngôn ngữ trực tuyến
- 21. Python md5 băm so
- 22. Không thể gọi trực tiếp supertype constructor - tại sao không?
- 23. Trả lại băm MD5 sai trong C
- 24. MD5 băm từ chuỗi
- 25. Có thể định nghĩa một hàm cục bộ trong truy vấn TSQL không?
- 26. Android: chọn giữa hai ngôn ngữ không có "ngôn ngữ"
- 27. Hàm băm SHA-1 có thể là số không?
- 28. Làm thế nào tôi có thể nhận được một băm MD5 trong Coldfusion?
- 29. Tại sao mã băm MD5 tính phí của tôi không tương đương với băm được tính toán trên một trang web?
- 30. Có thể chuyên mẫu về liên kết ngôn ngữ không?
Có liên quan, đối với các phiên bản sau SQL Server 2000: http://stackoverflow.com/q/3525997/1569 –