1
0
mirror of https://github.com/taigrr/pastebin synced 2026-04-06 06:42:32 -07:00
Files
pastebin/utils.go
Tai Groot 25f66bb589 feat: modernize codebase and complete API surface
- 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)
2026-03-09 05:44:08 +00:00

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]
}