1
0
mirror of https://github.com/labstack/echo.git synced 2024-11-28 08:38:39 +02:00

docs: add comments to util.go randomString (#2494)

* Update util.go
This commit is contained in:
Trim21 2023-07-23 04:47:35 +08:00 committed by GitHub
parent b3ec8e0fdd
commit e6b96f8873
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -74,6 +74,12 @@ func randomString(length uint8) string {
r := make([]byte, length+(length/4)) // perf: avoid read from rand.Reader many times
var i uint8 = 0
// security note:
// we can't just simply do b[i]=randomStringCharset[rb%len(randomStringCharset)],
// len(len(randomStringCharset)) is 52, and rb is [0, 255], 256 = 52 * 4 + 48.
// make the first 48 characters more possibly to be generated then others.
// So we have to skip bytes when rb > randomStringMaxByte
for {
_, err := io.ReadFull(reader, r)
if err != nil {