mirror of
https://github.com/taigrr/pastebin
synced 2026-04-06 06:42:32 -07:00
- Update module path from prologic/pastebin to taigrr/pastebin - Replace go.rice with stdlib embed for templates and static assets - Replace httprouter with stdlib net/http ServeMux (Go 1.22+) - Replace namsral/flag with cobra + fang for CLI argument parsing - Fix inverted TLS insecure logic in client (was negating the flag) - Close HTTP response body in client - Use base64 URLEncoding instead of StdEncoding for paste IDs - Add comprehensive handler tests for all endpoints - Add client package tests - Add utils tests for RandomString - Remove templates.go (replaced by embed) - Remove unused dependencies (go-metrics, stats, logger, httprouter, go.rice)
17 lines
453 B
Go
17 lines
453 B
Go
package main
|
|
|
|
import (
|
|
"crypto/rand"
|
|
"encoding/base64"
|
|
)
|
|
|
|
// RandomString generates a URL-safe random string of the specified length.
|
|
// It reads random bytes and encodes them using base64 URL encoding.
|
|
// The resulting string is truncated to the requested length.
|
|
func RandomString(length int) string {
|
|
rawBytes := make([]byte, length*2)
|
|
_, _ = rand.Read(rawBytes)
|
|
encoded := base64.URLEncoding.EncodeToString(rawBytes)
|
|
return encoded[:length]
|
|
}
|