Я пытался закодировать OneTimePad с go, но не могу записать в файл: файлы представляют собой файлы bin (скомпилированный Go код). Мой код:
package main
import ("fmt"
"io/ioutil"
"math/rand")
func rndByte(l int)[]byte{
token := make([]byte, l)
rand.Read(token)
return token
}
func writeByteFile(filename string,inp []byte ){
err := ioutil.WriteFile(filename, inp, 0644)
if err != nil {
fmt.Println(err)
}
}
func readFile(filename string) []byte {
data, err := ioutil.ReadFile(filename)
if err != nil {
fmt.Println("File reading error", err)
}
return data
}
func main(){
x := readFile("xor")
// y:= len(x)
z := rndByte(489)
var res [489]byte
for i:=0; i != 489; i++{
res[i] = x[i] ^ z[i]
}
writeByteFile("xorKey", z)
writeByteFile("xorENC", res)
}
Моя ошибка:
# аргументы командной строки ./xorbyte.go:47:19: нельзя использовать res (тип [489] байт) в качестве байта типа [] в аргументе для writeByteFile