Điểm:-1

Làm cách nào để đệm trong Thuật toán SHA256 (một ví dụ sử dụng Tiêu đề Bitcoin)?

lá cờ br

Đối với bất kỳ khối bitcoin nào, chúng tôi kết hợp các trường Tiêu đề khác nhau để tạo một chuỗi là đầu vào cho thuật toán SHA 2 lần. Băm kết quả phải khớp với Băm trong tiêu đề Khối để Khối hợp lệ.

Để kiểm tra logic này cũng như thuật toán SHA, tôi đã sử dụng tiêu đề của Block số 695877 (https://blockchain.info/rawblock/695877?format=json) để tạo Chuỗi đầu vào 04008020546C359986812

Bây giờ khi tôi áp dụng thuật toán SHA 2 lần, hàm băm kết quả khớp với hàm băm trong Khối (bỏ qua phần Endian trong thời gian hiện tại).

Băm được tính toán: 629ef98d63e12f6b01476419a5a71efa8814dea40aec09000000000000000000

Băm khối: 00000000000000000009ec0aa4de1488fa1ea7a5196447016b2fe1638df99e62

Nhưng khi mình pad thủ công header trước khi pass thì thuật toán SHA 2 pass như sau: 04008020546c359986812644420e453113e209afeaaeeb316f3a07000000000000000000b8fa13b3fca087c1456daac626ab9b8a47eae821a326f17e0ffffc15433df709b0f718610b1812175a5c9544800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000280 Điều này dẫn đến một hàm băm không chính xác.

Tôi không thấy có gì sai trong phần đệm. Ai đó có thể xin vui lòng chỉ ra nó?

J.Doe avatar
lá cờ br
Tôi đã không nhận được câu hỏi của bạn.Chúng tôi đệm tin nhắn sao cho (độ dài tin nhắn tính theo số Bit)%512=0 khi chúng tôi xử lý các khối 512 bit.
A. Hersean avatar
lá cờ cr
Bạn đã xác nhận rằng chuỗi đầu vào ban đầu tạo ra hàm băm chính xác. Sau đó, bạn đã thêm `8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000280` vào chuỗi đầu vào, thay đổi nó. Điều này sẽ thay đổi hàm băm của chuỗi. Đó là những gì băm phải làm. Vậy tại sao bạn muốn đệm, khi thông báo chưa được đệm sẽ tạo ra đầu ra dự định?
fgrieu avatar
lá cờ ng
Trình bày lại nhận xét trên theo cách khác: phần đệm của hàm băm là một phần của hàm băm và không được thực hiện bên ngoài.
J.Doe avatar
lá cờ br
Tôi đang cố gắng tự triển khai SHA từ đầu (chỉ để xem liệu tôi có hiểu đúng không).Có một truy vấn tiếp theo: Nếu tôi sử dụng tiêu đề trên (không có phần đệm) và đưa nó vào một thuật toán trong 2 lần, nó sẽ cho đầu ra chính xác nếu dữ liệu được chỉ định là 'HEX' nhưng không thành công đối với 'TEXT'. Loại tiền xử lý nào được thực hiện để chuyển đổi dữ liệu 'HEX' thành 'TEXT' trước khi chúng tôi chạy thuật toán SHA? Hầu hết mã giả SHA mà tôi thấy đều giả sử dữ liệu giống như định dạng 'TEXT'. Tôi sẽ rất tuyệt nếu bạn có thể giải thích bằng cách sử dụng tiêu đề hiện tại ở trên? Đây là công cụ [https://emn178.github.io/online-tools/sha256.html]
fgrieu avatar
lá cờ ng
Tôi đề nghị bạn đóng câu hỏi này vì vấn đề ban đầu đã được giải quyết; và rằng trước khi hỏi một câu hỏi mới về phần đệm SHA-256, trước tiên bạn hãy đọc câu trả lời cho [các câu hỏi khác về phần đệm SHA-256](https://crypto.stackexchange.com/questions/tagged/padding%2bsha-256?tab=Votes ), có thể bắt đầu bằng [this](https://crypto.stackexchange.com/a/9370/555) và [that](https://crypto.stackexchange.com/a/79735/555). Ngoài ra, hãy đọc [FIPS 180-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf) rất hay, trong đó có mọi thứ cần thiết.
Điểm:-3
lá cờ vn

Đảm bảo rằng kích thước mã hóa trong khối giống với kích thước bạn đang so sánh. Những vấn đề như vậy có thể xảy ra khi kích thước khối không nhất quán.

fgrieu avatar
lá cờ ng
Không có mã hóa liên quan: băm không phải là mã hóa. Ngoài ra, vấn đề là mức độ đệm bổ sung, thay vì vấn đề kích thước.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.