


Quick Start: Use Go language functions to implement simple data encryption and decryption functions
Aug 03, 2023 am 11:29 AMQuick Start: Use Go language functions to implement simple data encryption and decryption functions
In today's information society, data confidentiality has become particularly important. In order to ensure the confidentiality of data, we usually use various encryption algorithms to encrypt the data. In this article, we will use Go language functions to implement a simple data encryption and decryption function.
First, we need to import the crypto/cipher package in order to use the encryption algorithm. We will use the AES (Advanced Encryption Standard) algorithm to encrypt and decrypt data. The code is as follows:
package main import ( "crypto/aes" "crypto/cipher" "crypto/rand" "encoding/base64" "fmt" "io" ) // 加密函數(shù) func encrypt(data []byte, key string) string { // 創(chuàng)建新的AES加密塊 block, _ := aes.NewCipher([]byte(key)) // 創(chuàng)建一個長度為len(data) + aes.BlockSize的切片 ciphertext := make([]byte, aes.BlockSize+len(data)) // 初始化向量 iv := ciphertext[:aes.BlockSize] if _, err := io.ReadFull(rand.Reader, iv); err != nil { panic(err) } // 加密數(shù)據(jù) stream := cipher.NewCFBEncrypter(block, iv) stream.XORKeyStream(ciphertext[aes.BlockSize:], data) // 返回加密后的數(shù)據(jù),使用base64編碼 return base64.URLEncoding.EncodeToString(ciphertext) } // 解密函數(shù) func decrypt(ciphertext string, key string) string { // 將密文解碼為字節(jié)數(shù)組 data, _ := base64.URLEncoding.DecodeString(ciphertext) // 分離向量和加密后的數(shù)據(jù) iv := data[:aes.BlockSize] data = data[aes.BlockSize:] // 創(chuàng)建新的AES解密塊 block, _ := aes.NewCipher([]byte(key)) // 解密數(shù)據(jù) stream := cipher.NewCFBDecrypter(block, iv) stream.XORKeyStream(data, data) // 返回解密后的數(shù)據(jù) return string(data) } func main() { // 原始數(shù)據(jù) plaintext := "Hello, World!" // 密鑰 key := "password123" // 加密數(shù)據(jù) ciphertext := encrypt([]byte(plaintext), key) fmt.Printf("加密后的數(shù)據(jù):%s ", ciphertext) // 解密數(shù)據(jù) decryptedText := decrypt(ciphertext, key) fmt.Printf("解密后的數(shù)據(jù):%s ", decryptedText) }
In the above code, we define two functions: encrypt and decrypt. The encrypt function accepts a byte array as input and returns a string representation of the encrypted data. The decrypt function accepts a string representation of ciphertext and returns the decrypted original data.
In the main function, we use these two functions to demonstrate the encryption and decryption process. We define a string plaintext as the original data and specify a key key. Then we call the encrypt function to encrypt the original data and print out the ciphertext. Then we call the decrypt function to decrypt the ciphertext and print out the decrypted original data.
Run the above code, we can see the encrypted data and decrypted data. This proves that our encryption and decryption functions are working properly.
In practical applications, we need to pay attention to the security of the key and the transmission security of the ciphertext. It is not safe to store keys in code, it is better to obtain keys from secure storage. At the same time, secure protocols such as HTTPS need to be used when transmitting ciphertext to ensure data confidentiality.
Summary:
In this article, we use Go language functions to implement a simple data encryption and decryption function. By calling the encryption function encrypt and the decryption function decrypt, we can encrypt the data and decrypt it when needed. Of course, this article is just a quick-start tutorial. In actual applications, more complex encryption algorithms and security mechanisms are needed to protect the confidentiality of data.
Code example: https://github.com/example/encryption-golang
The above is the detailed content of Quick Start: Use Go language functions to implement simple data encryption and decryption functions. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Vue3+TS+Vite development tips: How to encrypt and store data. With the rapid development of Internet technology, data security and privacy protection are becoming more and more important. In the Vue3+TS+Vite development environment, how to encrypt and store data is a problem that every developer needs to face. This article will introduce some common data encryption and storage techniques to help developers improve application security and user experience. 1. Data Encryption Front-end Data Encryption Front-end encryption is an important part of protecting data security. Commonly used

PHP and SQLite: How to Compress and Encrypt Data In many web applications, data security and storage space utilization are very important considerations. PHP and SQLite are two very widely used tools, and this article will introduce how to use them for data compression and encryption. SQLite is a lightweight embedded database engine that does not have a separate server process but interacts directly with applications. PHP is a popular server-side scripting language that is widely used to build dynamic

How to use Vue for data encryption and secure transmission Introduction: With the development of the Internet, data security has received more and more attention. In web application development, data encryption and secure transmission are important means to protect user privacy and sensitive information. As a popular JavaScript framework, Vue provides a wealth of tools and plug-ins that can help us achieve data encryption and secure transmission. This article will introduce how to use Vue for data encryption and secure transmission, and provide code examples for reference. 1. Data encryption and data encryption

How to encrypt and decrypt data in MySQL? Abstract: Data security is an important aspect of database management. This article will introduce how to use encryption algorithms to encrypt and decrypt data in MySQL to improve data security. 1. Introduction In the modern information society, data security issues are becoming more and more important. The data stored in the database may contain sensitive information, such as user passwords, bank account numbers, etc. In order to prevent data leakage and illegal acquisition, we need to encrypt and store this sensitive information. MySQL

Developing with MySQL and PowerShell: How to Implement Data Encryption and Decryption Functions Overview: In modern Internet applications, protecting the security of sensitive data is crucial. To ensure user privacy and data integrity, developers often use data encryption technology. This article will introduce how to use MySQL database and PowerShell script to implement data encryption and decryption functions. 1. Data encryption in MySQL database MySQL provides a variety of encryption functions and algorithms to ensure that data stored in

Java development skills revealed: Implementing data encryption and decryption functions In the current information age, data security has become a very important issue. In order to protect the security of sensitive data, many applications use encryption algorithms to encrypt the data. As a very popular programming language, Java also provides a rich library of encryption technologies and tools. This article will reveal some techniques for implementing data encryption and decryption functions in Java development to help developers better protect data security. 1. Selection of data encryption algorithm Java supports many

ThinkPHP6 Data Encryption and Decryption: Protecting Sensitive Data Security Overview: With the rapid development of the Internet, data security issues are becoming more and more important. Especially in network application development, the protection of some sensitive data is crucial. The ThinkPHP6 framework provides a powerful data encryption and decryption mechanism, which can effectively improve data security by encrypting sensitive data. Using the encryption functions of ThinkPHP6 The ThinkPHP6 framework has a variety of built-in encryption functions, which can be used as needed.

Best practices for using gRPC to implement data encryption in Golang Introduction: In today's era when information security is highly valued, protecting the security of data has become more and more important. In distributed systems, how to ensure the security of data during network transmission is an issue that must be paid attention to. gRPC is a high-performance, cross-language remote procedure call framework that provides higher data security by using ProtocolBuffers for data serialization and transmission, and supports TLS/SSL encrypted transmission.
