You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Provide the ability to set password hash algorithm parameters (#22942)
This PR refactors and improves the password hashing code within gitea
and makes it possible for server administrators to set the password
hashing parameters
In addition it takes the opportunity to adjust the settings for `pbkdf2`
in order to make the hashing a little stronger.
The majority of this work was inspired by PR #14751 and I would like to
thank @boppy for their work on this.
Thanks to @Gusted for the suggestion to adjust the `pbkdf2` hashing
parameters.
Close#14751
---------
Signed-off-by: Andrew Thornton <[email protected]>
Co-authored-by: delvh <[email protected]>
Co-authored-by: John Olheiser <[email protected]>
Co-authored-by: Lunny Xiao <[email protected]>
Copy file name to clipboardExpand all lines: docs/content/doc/advanced/config-cheat-sheet.en-us.md
+16-1
Original file line number
Diff line number
Diff line change
@@ -568,7 +568,22 @@ Certain queues have defaults that override the defaults set in `[queue]` (this o
568
568
-`IMPORT_LOCAL_PATHS`: **false**: Set to `false` to prevent all users (including admin) from importing local path on server.
569
569
-`INTERNAL_TOKEN`: **\<random at every install if no uri set\>**: Secret used to validate communication within Gitea binary.
570
570
-`INTERNAL_TOKEN_URI`: **<empty>**: Instead of defining INTERNAL_TOKEN in the configuration, this configuration option can be used to give Gitea a path to a file that contains the internal token (example value: `file:/etc/gitea/internal_token`)
571
-
-`PASSWORD_HASH_ALGO`: **pbkdf2**: The hash algorithm to use \[argon2, pbkdf2, scrypt, bcrypt\], argon2 will spend more memory than others.
571
+
-`PASSWORD_HASH_ALGO`: **pbkdf2**: The hash algorithm to use \[argon2, pbkdf2, pbkdf2_v1, pbkdf2_hi, scrypt, bcrypt\], argon2 and scrypt will spend significant amounts of memory.
572
+
- Note: The default parameters for `pbkdf2` hashing have changed - the previous settings are available as `pbkdf2_v1` but are not recommended.
573
+
- The hash functions may be tuned by using `$` after the algorithm:
574
+
-`argon2$<time>$<memory>$<threads>$<key-length>`
575
+
-`bcrypt$<cost>`
576
+
-`pbkdf2$<iterations>$<key-length>`
577
+
-`scrypt$<n>$<r>$<p>$<key-length>`
578
+
- The defaults are:
579
+
-`argon2`: `argon2$2$65536$8$50`
580
+
-`bcrypt`: `bcrypt$10`
581
+
-`pbkdf2`: `pbkdf2$50000$50`
582
+
-`pbkdf2_v1`: `pbkdf2$10000$50`
583
+
-`pbkdf2_v2`: `pbkdf2$50000$50`
584
+
-`pbkdf2_hi`: `pbkdf2$320000$50`
585
+
-`scrypt`: `scrypt$65536$16$2$50`
586
+
- Adjusting the algorithm parameters using this functionality is done at your own risk.
572
587
-`CSRF_COOKIE_HTTP_ONLY`: **true**: Set false to allow JavaScript to read CSRF cookie.
573
588
-`MIN_PASSWORD_LENGTH`: **6**: Minimum password length for new users.
574
589
-`PASSWORD_COMPLEXITY`: **off**: Comma separated list of character classes required to pass minimum complexity. If left empty or no valid values are specified, checking is disabled (off):
0 commit comments