func BenchmarkNewImage(b *testing.B) { b.StopTimer() d := utils.RandomCreateBytes(challengeNums, defaultChars...) b.StartTimer() for i := 0; i < b.N; i++ { NewImage(d, stdWidth, stdHeight) } }
// XsrfToken creates a xsrf token string and returns. func (ctx *Context) XsrfToken(key string, expire int64) string { if ctx._xsrf_token == "" { token, ok := ctx.GetSecureCookie(key, "_xsrf") if !ok { token = string(utils.RandomCreateBytes(32)) ctx.SetSecureCookie(key, "_xsrf", token, expire) } ctx._xsrf_token = token } return ctx._xsrf_token }
func BenchmarkImageWriteTo(b *testing.B) { b.StopTimer() d := utils.RandomCreateBytes(challengeNums, defaultChars...) b.StartTimer() counter := &byteCounter{} for i := 0; i < b.N; i++ { img := NewImage(d, stdWidth, stdHeight) img.WriteTo(counter) b.SetBytes(counter.n) counter.n = 0 } }
// create a new captcha id func (c *Captcha) CreateCaptcha() (string, error) { // generate captcha id id := string(utils.RandomCreateBytes(15)) // get the captcha chars chars := c.genRandChars() // save to store if err := c.store.Put(c.key(id), chars, c.Expiration); err != nil { return "", err } return id, nil }
// generate rand chars with default chars func (c *Captcha) genRandChars() []byte { return utils.RandomCreateBytes(c.ChallengeNums, defaultChars...) }