Solidity - Chức năng mật mã
Solidity cũng cung cấp các chức năng mật mã sẵn có. Sau đây là các phương pháp quan trọng -
keccak256(bytes memory) returns (bytes32) - tính toán băm Keccak-256 của đầu vào.
sha256(bytes memory) returns (bytes32) - tính toán mã băm SHA-256 của đầu vào.
ripemd160(bytes memory) returns (bytes20) - tính toán băm RIPEMD-160 của đầu vào.
sha256(bytes memory) returns (bytes32) - tính toán mã băm SHA-256 của đầu vào.
ecrecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) returns (address)- khôi phục địa chỉ được liên kết với khóa công khai từ chữ ký đường cong elliptic hoặc trả về số không khi bị lỗi. Các tham số hàm tương ứng với các giá trị ECDSA của chữ ký: r - 32 byte đầu tiên của chữ ký; s: 32 byte thứ hai của chữ ký; v: 1 byte cuối cùng của chữ ký. Phương thức này trả về một địa chỉ.
Ví dụ sau cho thấy việc sử dụng hàm mật mã trong Solidity.
Thí dụ
pragma solidity ^0.5.0;
contract Test {
function callKeccak256() public pure returns(bytes32 result){
return keccak256("ABC");
}
}
Chạy chương trình trên bằng các bước được cung cấp trong chương Ứng dụng đầu tiên của Solidity .
Đầu ra
0: bytes32: result 0xe1629b9dda060bb30c7908346f6af189c16773fa148d3366701fbaa35d54f3c8