Bitcoin/address validation: Difference between revisions
m
Minor code improvement.
m (Minor code correction.) |
m (Minor code improvement.) |
||
Line 335:
const std::string ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
std::map<char,
{ 'A', 10 }, { 'B', 11 }, { 'C', 12 }, { 'D', 13 }, { 'E', 14 }, { 'F', 15 } };
std::vector<
std::vector<
for ( uint64_t i = 0; i < text.size(); i += 2 ) {
const
const
bytes[i / 2] =
}
return bytes;
}
std::string vector_to_ascii_string(const std::vector<
std::string result = "";
for ( uint32_t i = 0; i < bytes.size(); ++i ) {
Line 357 ⟶ 358:
}
std::vector<
std::vector<
for ( const char& ch : text ) {
std::string::size_type index = ALPHABET.find(ch);
Line 381 ⟶ 382:
}
std::vector<
std::vector first21(decoded.begin(), decoded.begin() + 21);
Line 387 ⟶ 388:
std::string text = vector_to_ascii_string(first21);
std::string hash_1 = sha256.message_digest(text);
// Convert 'hashOne' into a suitable ASCII string for the second SHA256 hash
std::vector<
std::string ascii_1 = vector_to_ascii_string(bytes_1);
std::string hash_2 = sha256.message_digest(ascii_1);
std::vector<
std::vector<
std::vector<
return checksum == last4;
}
|