1. Berikut ini adalah beberapa fungsi matematika yang umum digunakan, sehingga lebih aman dan dapat diandalkan.
addmod(uint x, uint y, uint k) mengembalikan (uint): Menghitung x + y modulo k.
mulmod(uint x, uint y, uint k) mengembalikan (uint): Menghitung x * y modulo k.
2. API terkait fungsi hash
Fungsi hash juga disebut fungsi hash: masukan dengan panjang berapa pun diubah menjadi keluaran dengan panjang tetap melalui algoritma hash (MD4, MD5, matang-160, keluarga fungsi hash kriptografi SHA "Secure Hash Algorithm").
keluarga SHA:
SHA1: Nilai bit 160-bit, saat ini terbukti tidak terlalu aman, ada kemungkinan nilai input yang berbeda akan mendapatkan nilai hash yang sama.
SHA2: SHA-224, SHA-256, SHA-384 dan SHA-512. Angka-angka berbeda di belakang mewakili panjang nilai hash yang dihitung.
SHA3: Algoritma Keccak
Fungsi hash apa yang disediakan soliditas?
keccak256(...) return (bytes32): Berdasarkan algoritma hash Keccak-256, menghitung nilai hash dari input panjang variabel.
sha256(...) return (bytes32): Berdasarkan algoritma hash SHA-256, hitung nilai hash dari input panjang variabel.
matangmd160(...) kembali (bytes20): Berdasarkan algoritma hash RIPEMD-160, menghitung nilai hash dari input panjang variabel.
sha3(...) return (bytes32): Ini sebenarnya adalah alias untuk fungsi keccak256. Penggunaan fungsi ini tidak lagi disarankan di Solidity0.4.16 dan versi yang lebih baru.
Nilai hash pemilih fungsi di Solidity dihitung menggunakan algoritma hash keccak256. Nilai hash 4 byte pertama diambil sebagai identifikasi pemilih fungsi.
3. fungsi pemulihan
Kita dapat memulihkan alamat yang terkait dengan kunci publik melalui tanda tangan kurva elips, ecrecover(bytes32 hash,uint8 v,bytes32 r,bytes32 s)returns(address)
Keempat parameter tersebut adalah:
Hash: Nilai hash dari data yang ditandatangani, r, s, dan v masing-masing berasal dari string hasil tanda tangan.
r = tanda tangan[0:64]
s = tanda tangan[64:128]
v = tanda tangan[128:130]+27