diff --git a/src/jamidht/archive_account_manager.cpp b/src/jamidht/archive_account_manager.cpp
index 5b930b04efdba91359ea5a2661bc828086d231ad..9b887bb4bec4b43d235975ee3a90e72ec9ec6696 100644
--- a/src/jamidht/archive_account_manager.cpp
+++ b/src/jamidht/archive_account_manager.cpp
@@ -653,15 +653,18 @@ ArchiveAccountManager::changePassword(const std::string& password_old,
 }
 
 std::string
-generatePIN(size_t length = 8)
+generatePIN(size_t length = 16, size_t split = 8)
 {
     static constexpr const char alphabet[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
     dht::crypto::random_device rd;
     std::uniform_int_distribution<size_t> dis(0, sizeof(alphabet) - 2);
     std::string ret;
     ret.reserve(length);
-    for (size_t i = 0; i < length; i++)
+    for (size_t i = 0; i < length; i++) {
         ret.push_back(alphabet[dis(rd)]);
+        if (i % split == split - 1 and i != length - 1)
+            ret.push_back('-');
+    }
     return ret;
 }