Solidity.

Bài viết

Chia sẻ kiến thức của bạn.

0x0375...f041.
Jul 10, 2023
Hỏi đáp Chuyên Gia

Làm thế nào để đảo ngược keccak256 trong độ rắn

Tôi cần trợ giúp với đoạn mã sau, nơi tôi được cung cấp keccak256 của một tham số và cần đảo ngược nó để tìm tham số để giải quyết thách thức

contract LessonFive is AFoundryCourseChallenge {
    error LessonFive__WrongPassword();

    bytes32 public constant EXPECTED_BYTES = 0xb68fe43f0d1a0d7aef123722670be50268e15365401c442f8806ef83b612976b;


    /*
     * CALL THIS FUNCTION!
     * 
     * Use all the help you can on this one! Google, AI, friends, peeranha, ethereum stack exchange, etc. 
     * 
     * Hint: It's a very common...
     * 
     * @param password - A string that when you keccak256 it will return the `EXPECTED_BYTES`!
     * @param yourTwitterHandle - Your twitter handle. Can be a blank string.
     */
    function solveChallenge(string memory password, string memory yourTwitterHandle) external {
        if (keccak256(abi.encodePacked(password)) == EXPECTED_BYTES) {
            _updateAndRewardSolver(yourTwitterHandle);
        } else {
            revert LessonFive__WrongPassword();
        }
    }
}
  • Smart Contract
  • Solidity
2
2
Chia sẻ
Bình luận
.

Câu trả lời

2
0x7a36...df11.
Jul 15 2023, 13:06

bạn không thể đảo ngược một đầu ra băm keccak256 để tìm đầu vào của nó. Thuộc tính này là nền tảng cho cách mạng blockchain đạt được tính toàn vẹn và bảo mật dữ liệu. keccak256 được thiết kế để trở thành một hàm một chiều: dễ dàng tính toán để tạo ra một hàm băm từ dữ liệu đầu vào, nhưng nó không thể tính toán được để tạo đầu vào ban đầu chỉ với đầu ra băm. Ở đây bạn chỉ có thể loại bỏ vũ phu như trong một gợi ý. Loại “querty” để cố gắng nhập. Tôi không thể tự sinh sản. Bạn thấy hợp đồng của bạn được kế thừa từ hợp đồng AfoundryCourseChallenge. Bạn có thể đính kèm mã của hợp đồng này không, MB có một cái gì đó thú vị)

1
Bình luận
.
foufrix.
Jul 21 2023, 10:14

Như thông báo trước đã nói, không thể đảo ngược keccak256 vì nó sẽ phá vỡ hàm băm bảo mật.

Tôi cũng đã tham gia vào bài học mà bạn đang nói đến, và có hai gợi ý ở đó:

  • Hint: It's a very common...=> Hãy xem những mật khẩu được sử dụng nhiều nhất là gì
  • https://arbiscan.io/address/0xf988Ebf9D801F4D3595592490D7fF029E438deCa là hợp đồng được đề cập. Bởi vì chúng tôi đang ở trên blockchain, bạn có thể thấy mọi thứ! Hãy xem các giao dịch của người khác;)
0
Bình luận
.

Bạn có biết câu trả lời không?

Hãy đăng nhập và chia sẻ nó.

Chúng tôi sử dụng cookie để đảm bảo bạn có trải nghiệm tốt nhất trên trang web của chúng tôi.
Thêm thông tin