Tôi có những gì tôi nghĩ là một câu hỏi khá đơn giản. Tôi đang sử dụng mã này để tạo ra một uuid SHA1 trong Golang:Tạo cùng một SHU1 UUID trong golang và Javascript
namespace := uuid.Parse("b9cfdb9d-f741-4e1f-89ae-fac6b2a5d740")
sha := uuid.NewSHA1(namespace, []byte("something"))
fmt.Println(sha.String())
Bây giờ tôi muốn tạo ra các UUID cùng trong javascript, và tôi nghĩ rằng nó sẽ được dễ dàng như một cái gì đó như thế này:
var hash = CryptoJS.SHA1("b9cfdb9d-f741-4e1f-89ae-fac6b2a5d740" + "something")
// chomp the hash into a UUID string
Tuy nhiên, tôi đang gặp sự cố nghiêm trọng. Có vẻ như chức năng uuid.Parse
ở Golang đang chạy this parsing function chuyển đổi không gian tên thành mảng 16 byte, vì vậy mặc dù tôi sử dụng cùng một thuật toán SHA1 trong Javascript, tôi không nhận được cùng một đầu ra.
Tôi đã bị rối tung xung quanh khi làm điều tương tự trong JS, nhưng tôi bị bối rối.
Bất kỳ người dùng mật mã thông minh nào ở đây có thể giúp tôi?
Xin lỗi, chỉ cần thêm đoạn mã. – Ronze
Bạn có thể hiển thị cả hai kết quả không? –
@ArtjomB. Tôi đã xem xét ý nghĩa của "phân tích cú pháp" một UUID. Dường như nó sẽ loại bỏ các dấu gạch ngang, chuyển đổi các giá trị và tạo ra một mảng byte. Ronze Tôi nghĩ rằng bạn có thể thử loại bỏ băm, thực hiện giải mã hex và sau đó SHA1, nhưng tôi không chắc chắn. –