diff --git a/include/sessions.hpp b/include/sessions.hpp
index f0de8c9..e745845 100644
--- a/include/sessions.hpp
+++ b/include/sessions.hpp
@@ -233,9 +233,9 @@
 
         OpenSSLGenerator gen;
 
-        for (size_t i = 0; i < sessionToken.size(); ++i)
+        for (char& sessionChar : sessionToken)
         {
-            sessionToken[i] = alphanum[dist(gen)];
+            sessionChar = alphanum[dist(gen)];
             if (gen.error())
             {
                 return nullptr;
@@ -244,9 +244,9 @@
         // Only need csrf tokens for cookie based auth, token doesn't matter
         std::string csrfToken;
         csrfToken.resize(sessionTokenSize, '0');
-        for (size_t i = 0; i < csrfToken.size(); ++i)
+        for (char& csrfChar : csrfToken)
         {
-            csrfToken[i] = alphanum[dist(gen)];
+            csrfChar = alphanum[dist(gen)];
             if (gen.error())
             {
                 return nullptr;
@@ -255,9 +255,9 @@
 
         std::string uniqueId;
         uniqueId.resize(10, '0');
-        for (size_t i = 0; i < uniqueId.size(); ++i)
+        for (char& uidChar : uniqueId)
         {
-            uniqueId[i] = alphanum[dist(gen)];
+            uidChar = alphanum[dist(gen)];
             if (gen.error())
             {
                 return nullptr;
