Trong ứng dụng của tôi, tôi cần băm chuỗi trước khi tôi lưu nó vào một tệp văn bản. Có ai biết làm thế nào để làm điều đó?Hàm băm Visual Basic 6.0
Trả lời
Bạn có thể thử với CriptoASP. Đừng bận tâm về 'ASP' trong tên, đó là một ActiveX DLL bạn có thể khởi tạo từ VB6. Nó cung cấp các phương thức để tạo ra các số ngẫu nhiên, băm với MD2, MD4, MD5 và SHA và một số loại mã hóa/giải mã.
Bạn có thể tải nó từ CriptoASP
Tôi xin lỗi, ngôn ngữ web là ở Tây Ban Nha, nhưng tôi nghĩ bạn có thể undertand việc sử dụng rất dễ dàng của COM với các ví dụ ở dưới cùng của Doc. for CriptoASP, chỉ cần thay đổi máy chủ .CreateObject với câu đối tượng mới trong VB6.
Hãy cho tôi biết nếu bạn muốn dịch một ví dụ hoặc tài liệu.
Để lưu tệp vào tệp văn bản, bạn có thể sử dụng FSO (Đối tượng hệ thống tệp).
Vì mục đích gì bạn đang sử dụng hàm băm? Điều này quan trọng bởi vì một số thuật toán băm như MD5 phù hợp cho một số mục đích, nhưng không phù hợp với các mục đích khác.
Liên kết này hiển thị VB6 implementation of MD5.
Liên kết không còn giá trị. Bị hỏng. @RoadWarrior – Ahmad
@Ahmad, tôi đã sửa liên kết. – RoadWarrior
tôi đã có kết quả rất tốt với thế này, nhưng việc thực hiện c
sdbm
thuật toán này đã được tạo ra cho sdbm (một reimplementation công lĩnh vực ndbm) thư viện cơ sở dữ liệu. nó đã được tìm thấy để làm tốt trong việc xáo trộn các bit, gây phân phối tốt hơn các khóa và chia tách ít hơn. nó cũng xảy ra là một hàm băm chung tốt với phân phối tốt. hàm thực tế là băm (i) = băm (i - 1) * 65599 + str [i]; những gì được bao gồm dưới đây là phiên bản nhanh hơn được sử dụng trong gawk. [thậm chí còn có một phiên bản nhanh hơn, duff-device] hằng số phép thuật 65599 được chọn ra khỏi không khí mỏng trong khi thử nghiệm với các hằng số khác nhau, và hóa ra là một nguyên tố. đây là một trong các thuật toán được sử dụng trong db berkeley (xem sleepycat) và ở nơi khác.
static unsigned long
sdbm(str)
unsigned char *str;
{
unsigned long hash = 0;
int c;
while (c = *str++)
hash = c + (hash << 6) + (hash << 16) - hash;
return hash;
}
Để chuyển nó sang vb, tính toán sẽ diễn ra như thế này. Về cơ bản nó đi qua các ký tự của chuỗi từ trái sang phải, tính toán hash như
newHash = the character (c) + (previousHashValue * 2^6) +
(previousHashValue * 2^16) -
previousHashValue**
previousHashValue = newHash
Toàn bộ điểm của shl (<<) là tránh sử dụng nhân với 65599 tương đối chậm. Cổng VB có HAI phép nhân. Sẽ nhanh hơn khi thực hiện việc này: newHash = ký tự (c) + (previousHashValue * 65599) – Steve
Dưới đây là một chức năng CRC32 băm:
Ví dụ về sử dụng CAPICOM để có được một băm
Thêm CAPICOM.DLL làm tham chiếu dự án
sử dụng chìa khóa DIM As String DIM sValue As String
Dim sEncrypedValue như String
Dim OCAP Như CAPICOM.EncryptedData Set OCAP = New CAPICOM.Mã hóaData
Với oCAP. .Algorithm.KeyLength = CAPICOM_ENCRYPTION_KEY_LENGTH_56_BITS .Algorithm.Name = CAPICOM_ENCRYPTION_ALGORITHM_RC4
.SetSecret chính .Content = sValue cuối với
sEncrypedValue = objCAP.Encrypt (CAPICOM_ENCODE_BASE64)
Để Giải mã: oCAP.SetSecret key oCAP.Content = sEncrypedValue sValue = oCAP.Decrypt (CAPICOM_ENCODE_BASE64)
Bạn có thể thực hiện nó trong C# .net dl l sử dụng SHA128Managed
(cho ý kiến đòi hỏi 50 đại diện)
Các liên kết mà Joel cung cấp là tốt, nhưng lưu ý rằng bạn sẽ cần phải thay đổi giá trị hạt giống đạt tiêu chuẩn cho nó để sản xuất CRC32 giống như mọi người khác :
Tùy chọn Seed ByVal As Long = & HEDB88320
Hy vọng rằng sẽ giúp tiết kiệm một người khác 30 phút làm việc!
- 1. Visual Basic 6.0 Case Statement
- 2. Chuyển đổi loại Visual Basic 6.0 sang VB.NET 'Cấu trúc'
- 3. Mẫu MySQL cho Visual Basic 6.0 - đọc/ghi
- 4. Loại dữ liệu thập phân trong Visual Basic 6.0
- 5. Thứ tự ưu tiên toán tử trong Visual Basic 6.0 là gì?
- 6. visual basic và vb.net
- 7. DIM là gì đứng trong Visual Basic và BASIC?
- 8. Việc cần làm nếu tôi không có Visual Basic 6.0 và cần biên dịch một dự án VB6?
- 9. Kích thước mảng trong Visual Basic?
- 10. Kích thước màn hình trong Visual Basic
- 11. Làm tròn số xuống trong Visual Basic
- 12. Cách sử dụng mutex trong Visual Basic
- 13. Giá trị hex trong Visual Basic
- 14. Dễ dàng hơn Visual Basic 6?
- 15. băm jquery nếu không có hàm băm
- 16. Xóa hàm băm URL
- 17. Tương đương với | = trong Visual Basic là gì?
- 18. Tham chiếu truyền đối tượng trong Visual Basic (VBA)
- 19. Làm thế nào để lưu breakpoint trong Visual Basic 6
- 20. 'Friend WithEvent' trong Visual Basic so với 'private' trong C#
- 21. Tên bảng tính Excel so với tên bảng Visual Basic
- 22. Danh sách đối số biến đổi với Visual Basic?
- 23. Gọi một phương thức Java từ Visual Basic 6
- 24. Có trình giải mã Visual Basic 6 không?
- 25. Nhận URL hiện tại trong IE Sử dụng Visual Basic
- 26. Tôi cần thực hiện dòng lệnh trong Visual Basic Script
- 27. Xác nhận hàm băm muối
- 28. Tìm kiếm hàm băm nhanh
- 29. Hàm băm giá rất thấp
- 30. Hàm băm cho một chuỗi
Bạn nên cho biết mục đích của băm, như giấu mật khẩu, cho phép tìm kiếm, v.v. – PhiLho