Solidity의 암호
왜 필요한가요?
요청 기능 및 액세스 제어에 의존하는
withdraw()
를 통해 청산될 수 있는 유동성을 계약에 고정했다고 가정합니다. 담당 EOA에 액세스할 수 있는 사람은 필요할 때 자금을 인출할 수 있습니다. 이를 위한 더 좋은 방법은 비밀번호를 설정하는 것입니다. 그러면 개인 키가 유출될 경우 해커가 여전히 비밀번호를 입력해야 합니다.어떻게 구현됩니까?
_setNewPassword()
) _testPassword()
) 예상 암호와 새 암호를 입력할 수 있습니다(현재 암호는 온체인 데이터에 의해 선언되므로). 견고성 코드
contract onChainPassword
{
bytes32 private globalPassword;
constructor(bytes32 _hashedPassword)
{
globalPassword = _hashedPassword;
}
function _checkPassword(string memory _password, bytes32 _newPassword)
public returns (bool)
{
bool decision = keccak256(abi.encodePacked(_password))==globalPassword;
_setNewPassword(_newPassword);
return decision;
}
function _setNewPassword(bytes32 _newPassword) internal
{
globalPassword = _newPassword;
}
}
부인 성명
광범위한 테스트 없이 금요일 프로젝트를 메인넷에 올리지 마십시오. 저는 분산형입니다.
Reference
이 문제에 관하여(Solidity의 암호), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/abhinavmir/passwords-in-solidity-4fhj텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)