第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

我如何使用標(biāo)志來選擇我想調(diào)用的函數(shù)

我如何使用標(biāo)志來選擇我想調(diào)用的函數(shù)

Go
Qyouu 2021-12-20 10:59:09
您好,這是我第一次真正嘗試編寫實(shí)際的 Go 命令行程序,所以請?jiān)徫乙矎幕ヂ?lián)網(wǎng)上刪除了一些代碼。我實(shí)際上想要做的是能夠選擇何時(shí)加密或解密,同時(shí)仍然能夠選擇 src 文件和 dest 文件。在此先感謝您的幫助。我找不到任何可靠的解釋,或者至少我找不到任何東西。package mainimport ("crypto/aes""crypto/cipher""crypto/rand""errors""io""io/ioutil""log""os")func decrypt(key, ciphertext []byte) (plaintext []byte, err error) {  var block cipher.Block  if block, err = aes.NewCipher(key); err != nil {      return }  if len(ciphertext) < aes.BlockSize {    err = errors.New("ciphertext too short")    return }  iv := ciphertext[:aes.BlockSize]  ciphertext = ciphertext[aes.BlockSize:]  cfb := cipher.NewCFBDecrypter(block, iv)  cfb.XORKeyStream(ciphertext, ciphertext)  plaintext = ciphertext   return }func encrypt(key, text []byte) (ciphertext []byte, err error) {  var block cipher.Block  if block, err = aes.NewCipher(key); err != nil {      return nil, err }  ciphertext = make([]byte, aes.BlockSize+len(string(text)))  iv := ciphertext[:aes.BlockSize]  if _, err = io.ReadFull(rand.Reader, iv); err != nil {      return }  cfb := cipher.NewCFBEncrypter(block, iv)  cfb.XORKeyStream(ciphertext[aes.BlockSize:], text)  return }func encryptFileData(srcFile, destFile string) {  if len(os.Args) > 1 {      srcFile = os.Args[1]  }  if len(os.Args) > 2 {      destFile = os.Args[2] }  var cipherText, plainText []byte  var err error  key := []byte("abcdefg123456789")  plainText, _ = ioutil.ReadFile(srcFile)  if cipherText, err = encrypt(key, plainText); err != nil {      log.Fatal(err)  }  ioutil.WriteFile(destFile, cipherText, 0755)   return  }func decryptFileData(srcFile, destFile string) {  if len(os.Args) > 1 {      srcFile = os.Args[1]  }  if len(os.Args) > 2 {      destFile = os.Args[2]  }  var cipherText, plainText []byte  var err error  key := []byte("abcdefg123456789")  cipherText, _ = ioutil.ReadFile(srcFile)  if plainText, err = decrypt(key, cipherText); err != nil {      log.Fatal(err)  }
查看完整描述

1 回答

?
飲歌長嘯

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊

使用flag包。例如:


func main() {

    encrypt := flag.Bool("encrypt", false, "encrypt file")

    decrypt := flag.Bool("decrypt", false, "decrypt file")

    flag.Parse()


    srcFile, destFile := flag.Arg(0), flag.Arg(1)

    if *encrypt {

        encryptFileData(srcFile, destFile)

    }


    if *decrypt {

        decryptFileData(srcFile, destFile)

    }

}


查看完整回答
反對 回復(fù) 2021-12-20
  • 1 回答
  • 0 關(guān)注
  • 156 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號