Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "crypto/aes"
- "crypto/cipher"
- "crypto/rand"
- "encoding/base32"
- "encoding/json"
- "fmt"
- "io"
- "os"
- )
- func encrypt(key, text []byte) string {
- block, err := aes.NewCipher(key)
- if err != nil {
- return ""
- }
- cipherText := make([]byte, aes.BlockSize+len(text))
- iv := cipherText[:aes.BlockSize]
- if _, err = io.ReadFull(rand.Reader, iv); err != nil {
- return ""
- }
- stream := cipher.NewCFBEncrypter(block, iv)
- stream.XORKeyStream(cipherText[aes.BlockSize:], text)
- return base32.StdEncoding.EncodeToString(cipherText)
- }
- func main(){
- key := []byte("1234567890123456")
- var login,psw,host,port string
- fmt.Print("Enter login: ")
- fmt.Fscan(os.Stdin, &login)
- fmt.Print("Enter password: ")
- fmt.Fscan(os.Stdin, &psw)
- fmt.Print("Enter host: ")
- fmt.Fscan(os.Stdin, &host)
- fmt.Print("Enter port: ")
- fmt.Fscan(os.Stdin, &port)
- map1 := map[string]string{
- "login": login,
- "port": port,
- "password": encrypt(key, []byte(psw)),
- "host": host,
- }
- map2, _ := json.Marshal(map1)
- file,_ := os.Create("config.json")
- file.Write(map2)
- defer file.Close()
- file, err := os.Open("config.json")
- if err != nil {
- fmt.Println(err)
- os.Exit(1)
- }
- defer file.Close()
- dat := make([]byte,1000)
- n, err := file.Read(dat)
- var data map[string]string
- if err := json.Unmarshal([]byte(dat[:n]), &data); err != nil {
- panic(err)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement