直接上码:
func decImg(imgPath string) {
var jpg = true
buff, err := ioutil.ReadFile(imgPath)
if err != nil {
fmt.Println(err)
return
}
key := buff[0] ^ 0xFF
var buff2 = make([]byte, len(buff))
if buff[1] != 0xD8 ^ key {
key = buff[0] ^ 0x89
jpg = false
}
for i := 0; i< len(buff); i++ {
buff2[i] = buff[i] ^ key
}
if(jpg) {
ioutil.WriteFile(os.Args[1] + ".jpg", buff2, 777)
} else {
ioutil.WriteFile(os.Args[1] + ".png", buff2, 777)
}
}
请自行研究调试。