Herkese merhaba!

Uzun yıllardır bol miktarda kişisel zaman ve enerji harcayarak bilgimizi hepinizle paylaşıyoruz. Ancak şu andan itibaren bu blogu çalışır durumda tutabilmek için yardımınıza ihtiyacımız var. Yapmanız gereken tek şey, sitedeki reklamlardan birine tıklamak olacaktır, aksi takdirde hosting vb. masraflar nedeniyle maalesef yayından kaldırılacaktır. Teşekkürler.

Değişik uzunluklarda güvenli veya güvenli olmayan rastgele dize oluşturmak istiyorsanız, aşağıdaki örnekleri kullanabilirsiniz.


Güvenli (cryptography) versiyon


package main

import (
"crypto/rand"
"log"
)

const chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

func main() {
ran, err := random(10)
if err != nil {
log.Fatalln(err)
}

log.Println(ran)
}

func random(length int) (string, error) {
bytes := make([]byte, length)

if _, err := rand.Read(bytes); err != nil {
return "", err
}

for i, b := range bytes {
bytes[i] = chars[b%byte(len(chars))]
}

return string(bytes), nil
}

Tests


# 10
r8khqsyt7E

# 100
WwB3qqFWbRol9tzBs1859jiqqtC8HZgayOw20PxOQLltlQ4CGkkqnt6Un5Ej5Sk5MIBnrH619rtCvU7i7xqz2523M1qvJ1I11skg

Güvensiz versiyon - 1


package random

import (
"math/rand"
"time"
)

const chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

func String(length int) (string, error) {
rand.Seed(time.Now().UnixNano())

bytes := make([]byte, length)

_, err := rand.Read(bytes)
if err != nil {
return "", err
}

for k, v := range bytes {
bytes[k] = chars[v%byte(len(chars))]
}

return string(bytes), nil
}

Testler


# 10
uhPv8zBz1K

# 100
k547x6Dhm1xfuAtQpEdfg30fZ147nEcb59suGtdanLu0mXVhEooayMo8A7FVa3HtNxoE984vbVc0UD8LpPsBSXj0C7KqPa7TxZbN

Güvensiz versiyon - 2


package random

import (
"math/rand"
"time"
)

var chars = []rune("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")

func String(length int) string {
rand.Seed(time.Now().UnixNano())

pick := make([]rune, length)
for i := range pick {
pick[i] = chars[rand.Intn(len(chars))]
}

return string(pick)
}

Testler


# 10
57fCgGTwQf

# 100
Mu1gbzW3N5kQNHDL5yZN4WJNH0zyWUWw8UYiVGgAaNjSGyyRyG1cTz1MISIMT31IyG0tn5ADIpOucko5BfjkdUdvqgKDmDKT7Xsg