


How to implement the encryption, decryption and interconnection of the national secret SM4 and SM2 algorithms in Go?
Apr 19, 2025 pm 06:27 PMDetailed explanation of the encryption, decryption and interconnection of Go language SM4 and SM2
This article explains in detail how to use Go language to implement the encryption and decryption of the SM4 and SM2 algorithms, and ensure interoperability with Java applications (such as those using the hutool toolkit). This requires the combination of asymmetric encryption algorithm SM2 and symmetric encryption algorithm SM4 to take into account data security and efficiency.
Encryption process:
- SM4 symmetric encryption: The sender first randomly generates a session key
secretidcontent
. Use this key to SM4 encryption of the message body. The encrypted result is used as the body content of the final message. Go language can use thegithub.com/emmansun/gmsm
library to implement SM4 encryption. The code example is as follows:
package main import ( "fmt" "github.com/emmansun/gmsm/sm4" ) func main() { // ... (Get the message body, generate secretidcontent) ... cipher, _ := sm4.NewCipher([]byte(secretidcontent)) // ... (SM4 encryption body) ... }
- SM2 asymmetric encryption: Then, using the receiving party's public key, SM2 encryption is performed on
secretidcontent
generated in step 1. The encryption result is stored in thesecretid
field of the message header. Thegithub.com/emmansun/gmsm
library also provides SM2 encryption function. Code example:
package main import ( "fmt" "github.com/emmansun/gmsm/sm2" ) func main() { // ... (Get the receiver's public key, secretidcontent) ... publicKey, _ := sm2.ParsePublicKey(publicKeyBytes) encryptedSecretid, _ := sm2.Encrypt(publicKey, []byte(secretidcontent)) // ... (Put encryptedsecretid into header's secretid) ... }
Decryption process:
- SM2 asymmetric decryption: After receiving the message, the receiver extracts
secretid
content from the header. Use your own private key to perform SM2 decryption to obtain thesecretidcontent
key generated in step 1.
package main import ( "fmt" "github.com/emmansun/gmsm/sm2" ) func main() { // ... (get private key, secretid in header) ... privateKey, _ := sm2.ParsePrivateKey(privateKeyBytes) secretidcontent, _ := sm2.Decrypt(privateKey, encryptedSecretid) // ... }
- SM4 symmetric decryption: Finally, use the
secretidcontent
key obtained by decryption to SM4 decrypt the message body to obtain the original message content.
package main import ( "fmt" "github.com/emmansun/gmsm/sm4" ) func main() { // ... (get body, secretIdContent) ... cipher, _ := sm4.NewCipher([]byte(secretIdContent)) // ... (SM4 decrypted body) ... }
Important tips: The above code is for reference only. In actual applications, error handling, parameter verification, and security issues such as key management are required. Please read the documentation of github.com/emmansun/gmsm
library carefully and learn in-depth its functions and usage methods.
The above is the detailed content of How to implement the encryption, decryption and interconnection of the national secret SM4 and SM2 algorithms in Go?. 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

What is Treehouse(TREE)? How does Treehouse (TREE) work? Treehouse Products tETHDOR - Decentralized Quotation Rate GoNuts Points System Treehouse Highlights TREE Tokens and Token Economics Overview of the Third Quarter of 2025 Roadmap Development Team, Investors and Partners Treehouse Founding Team Investment Fund Partner Summary As DeFi continues to expand, the demand for fixed income products is growing, and its role is similar to the role of bonds in traditional financial markets. However, building on blockchain

Table of Contents Market Interpretation of the concentrated shipment of ancient giant whales, BTC prices quickly repair ETH close to $4,000 key position, polarization of pledge and fund demand, altcoin sector differentiation intensifies, Solana and XRP funds inflows highlight market hotspots pay attention to macro data and policy trends, and market fluctuations may intensify last week (July 22-July 28). BTC maintained a high-level oscillation pattern. The ETH capital inflow trend continues to improve, the ETH spot ETF has achieved net inflow for eight consecutive weeks, and the ETH market share has climbed to 11.8%. On July 25, affected by the massive selling of Galaxy Digital, BTC fell below $115,000 for a short time, reaching the lowest point

Representative of cloud AI strategy: Cryptohopper As a cloud service platform that supports 16 mainstream exchanges such as Binance and CoinbasePro, the core highlight of Cryptohopper lies in its intelligent strategy library and zero-code operation experience. The platform's built-in AI engine can analyze the market environment in real time, automatically match and switch to the best-performing strategy template, and open the strategy market for users to purchase or copy expert configurations. Core functions: Historical backtest: Support data backtracking since 2010, assess the long-term effectiveness of strategies, intelligent risk control mechanism: Integrate trailing stop loss and DCA (fixed investment average cost) functions to effectively respond to market fluctuations, multi-account centralized management: a control surface

A verbal battle about the value of "creator tokens" swept across the crypto social circle. Base and Solana's two major public chain helmsmans had a rare head-on confrontation, and a fierce debate around ZORA and Pump.fun instantly ignited the discussion craze on CryptoTwitter. Where did this gunpowder-filled confrontation come from? Let's find out. Controversy broke out: The fuse of Sterling Crispin's attack on Zora was DelComplex researcher Sterling Crispin publicly bombarded Zora on social platforms. Zora is a social protocol on the Base chain, focusing on tokenizing user homepage and content

Table of Contents Crypto Market Panoramic Nugget Popular Token VINEVine (114.79%, Circular Market Value of US$144 million) ZORAZora (16.46%, Circular Market Value of US$290 million) NAVXNAVIProtocol (10.36%, Circular Market Value of US$35.7624 million) Alpha interprets the NFT sales on Ethereum chain in the past seven days, and CryptoPunks ranked first in the decentralized prover network Succinct launched the Succinct Foundation, which may be the token TGE

In the digital currency market, real-time mastering of Bitcoin prices and transaction in-depth information is a must-have skill for every investor. Viewing accurate K-line charts and depth charts can help judge the power of buying and selling, capture market changes, and improve the scientific nature of investment decisions.

Directory NaorisProtocol Project Position NaorisProtocol Core Technology NaorisProtocol (NAORIS) Airdrop NAORIS Token Economy NaorisProtocol Ecological Progress Risk and Strategy Suggestions FAQ Summary of FAQ NaorisProtocol is a decentralized Security-as-a-Service framework aimed at using a community-driven approach to conduct continuous auditing and threat detection of blockchain networks and smart contracts. "Security Miner" participated by distributed nodes

How to use the Stop Loss Order Advantages Take Profit Target How to set the Take Profit Target Advantages Trailing Stop Loss How to use the Trailing Stop Loss Advantages External Average Cost Method (DCA) Example Advantages Technical Analysis Indicator Moving Average Relative Strength Index (RSI) Parabolic SAR (Stop Loss and Reversal) Advantages Combined with the best results Stop Loss Order Stop Loss Order is an instruction to automatically close a position when the asset price reaches a preset level. Its main function is to control potential losses when the market trend is opposite to the position direction. As a core tool in risk management, it helps traders avoid emotional fluctuations
