util: random_string is now more entropic (#29312)

* random_string now returns a significantly higher entropy random string

sizeof(char*) is going to be 8 on a 64-bit system, not the length of the
string. Before, only strings of integer values [0-6] were being generated. Also
switched to C++ constructs for simplicity.

* Update common/util.cc

* maintain repo style

---------

Co-authored-by: Shane Smiskol <shane@smiskol.com>
old-commit-hash: 4cad0a035d
beeps
Misophist 2 years ago committed by GitHub
parent d33545a0b6
commit df4dbac04c
  1. 4
      common/util.cc

@ -214,9 +214,9 @@ std::string hexdump(const uint8_t* in, const size_t size) {
} }
std::string random_string(std::string::size_type length) { std::string random_string(std::string::size_type length) {
const char* chrs = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; const std::string chrs = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
std::mt19937 rg{std::random_device{}()}; std::mt19937 rg{std::random_device{}()};
std::uniform_int_distribution<std::string::size_type> pick(0, sizeof(chrs) - 2); std::uniform_int_distribution<std::string::size_type> pick(0, chrs.length() - 1);
std::string s; std::string s;
s.reserve(length); s.reserve(length);
while (length--) { while (length--) {

Loading…
Cancel
Save