summaryrefslogtreecommitdiff
path: root/src/tools
diff options
context:
space:
mode:
authorEgor Pugin <egor.pugin@gmail.com>2020-03-14 17:34:07 +0300
committerGitHub <noreply@github.com>2020-03-14 17:34:07 +0300
commitb3e84e58d471412b9d26e173b77c757d93d57b19 (patch)
tree5ad991beda3975e8d8237562724e20f30d169d40 /src/tools
parent9afa9c4e97faa9a6d7e6089ec1f822047738fdec (diff)
parent64174491dac84c559db5c48ed850177fa3eb4da0 (diff)
Merge pull request #133 from JellyBrick/master
Fix #127, #128 & Code quality improvements
Diffstat (limited to 'src/tools')
-rw-r--r--src/tools/FileTools.cpp2
-rw-r--r--src/tools/StringTools.cpp11
2 files changed, 9 insertions, 4 deletions
diff --git a/src/tools/FileTools.cpp b/src/tools/FileTools.cpp
index 408c710..d2c303c 100644
--- a/src/tools/FileTools.cpp
+++ b/src/tools/FileTools.cpp
@@ -23,4 +23,4 @@ void write(const string& content, const string& filePath) {
out.close();
}
-};
+}
diff --git a/src/tools/StringTools.cpp b/src/tools/StringTools.cpp
index 1246c50..f49a78e 100644
--- a/src/tools/StringTools.cpp
+++ b/src/tools/StringTools.cpp
@@ -3,6 +3,7 @@
#include <cstdlib>
#include <iomanip>
#include <cstdio>
+#include <random>
using namespace std;
@@ -58,8 +59,13 @@ string generateRandomString(std::size_t length) {
static const string chars("qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890-=[]\\;',./!@#$%^&*()_+{}|:\"<>?`~");
static const std::size_t charsLen = chars.length();
string result;
+
+ random_device randomDevice;
+ mt19937 randomSeed(randomDevice());
+ uniform_int_distribution<int> generator(0, charsLen - 1);
+
for (std::size_t i = 0; i < length; ++i) {
- result += chars[rand() % charsLen];
+ result += chars[generator(randomSeed)];
}
return result;
}
@@ -84,8 +90,7 @@ string urlDecode(const string& value) {
for (std::size_t i = 0, count = value.length(); i < count; ++i) {
const char c = value[i];
if (c == '%') {
- int t = 0;
- sscanf(value.substr(i + 1, 2).c_str(), "%x", &t);
+ int t = stoi(value.substr(i + 1, 2), nullptr, 16);
result += (char) t;
i += 2;
} else {