package atbash import "strings" func Atbash(s string) string { s = strings.ToLower(s) var v []byte var b, iter int for i := range s { sv := int(s[i]) switch { case sv < 48: continue case sv >= 48 && sv <= 57: b = sv case sv < 109: b = 110 + (109 - sv) case sv == 109: b = 110 case sv == 110: b = 109 case sv > 110: b = 109 - (sv - 110) } v = append(v, byte(b)) iter++ if iter == 5 { v = append(v, ' ') iter = 0 } } if iter == 0 { return string(v)[:len(string(v))-1] } return string(v) }