Solidity.

Publicación

Comparte tu conocimiento.

0x0375...f041.
Jul 10, 2023
P&R expertos

Cómo revertir keccak256 en Solidity

Necesito ayuda con el siguiente código en el que se me da el keccak256 de un parámetro y necesito invertirlo para encontrar el parámetro y resolver el desafío

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
Cuota
Comentarios
.

Respuestas

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

no puedes invertir una salida de hash keccak256 para encontrar su entrada. Esta propiedad es fundamental para que las redes de cadenas de bloques logren la integridad y la seguridad de los datos. keccak256 está diseñado para ser una función unidireccional: es fácil desde el punto de vista computacional generar un hash a partir de los datos de entrada, pero es inviable desde el punto de vista computacional generar la entrada original si solo se obtiene la salida del hash. Aquí solo se puede extraer mediante fuerza bruta, como en una pista. Escriba «querty» para intentar introducirla. No puedo reproducirme. Verás, tu contrato se hereda del contrato de AfoundryCourseChallenge. Puedes adjuntar el código de este contrato (MB, hay algo interesante)

1
Comentarios
.
foufrix.
Jul 21 2023, 10:14

Como decía el mensaje anterior, es imposible revertir keccak256 ya que rompería el hash de seguridad.

También he participado en la lección de la que hablas, y ahí hay dos consejos:

0
Comentarios
.

Sabes la respuesta?

Inicie sesión y compártalo.

Usamos cookies para asegurarnos de que obtenga la mejor experiencia en nuestro sitio web.
Más información