# 国密加密 **Repository Path**: starry123/ruove-sm ## Basic Information - **Project Name**: 国密加密 - **Description**: 这是一个国密加密算法的演示项目,实现了中国商用密码标准中的三种核心算法: SM2:椭圆曲线公钥密码算法 SM3:密码哈希算法 SM4:分组密码算法 该项目提供了一个直观的Web界面,演示了这些加密算法的使用方法和实现原理。 - **Primary Language**: C# - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 10 - **Forks**: 1 - **Created**: 2022-08-08 - **Last Updated**: 2025-09-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 国密加密算法演示(SM2/SM3/SM4) ## 项目简介 这是一个国密加密算法的演示项目,实现了中国商用密码标准中的三种核心算法: - SM2:椭圆曲线公钥密码算法 - SM3:密码哈希算法 - SM4:分组密码算法 该项目提供了一个直观的Web界面,演示了这些加密算法的使用方法和实现原理。 ## 功能特性 - **SM2非对称加密**:支持密钥对生成、数据加密和解密 - **SM3哈希计算**:提供数据摘要计算和验证功能 - **SM4对称加密**:支持ECB和CBC两种加密模式 - �10.0:提供完整加密套件的示例和文档 ## 使用示例 ### SM2 非对称加密 ```csharp // 生成密钥对 var keyPair = SM2Crypt.GenerateKeyPair(); // 使用公钥加密 string encrypted = SM2Crypt.Encrypt(keyPair.PublicKey, "要加密的数据"); // 使用私钥解密 string decrypted = SM2Crypt.Decrypt(keyPair.PrivateKey, encrypted); ``` ### SM3 哈希算法 ```csharp // 计算哈希值 string hash = SM3Crypt.Encrypt("要哈希的数据"); // 验证数据完整性 bool isValid = SM3Crypt.Verify("原始数据", hash); ``` ### SM4 对称加密 ```csharp // ECB模式加密 string encryptedECB = SM4Crypt.EncryptECB("要加密的数据", "1814546261730461"); // CBC模式加密 string encryptedCBC = SM4Crypt.EncryptCBC("要加密的数据", "1814546261730461", "0000000000000000"); ``` ## 项目结构 - **RuoVea.SM.Demo**:演示应用程序项目 - **RuoVea.SM**:核心加密库,包含SM2、SM3、SM4的具体实现 - **sm2_sm3_sm4**:Web演示项目,展示加密功能的使用界面 ## 安装与使用 1. 克隆仓库 2. 打开解决方案 sm2_sm3_sm4.sln 3. 构建并运行Web演示项目 4. 在浏览器中查看加密算法演示界面 ## 许可协议 本项目遵循MIT许可协议,详细信息请参见LICENSE文件。 ## 贡献指南 欢迎提交Pull Request和Issue。请确保提交的代码符合国密算法标准,并保持代码风格一致。 ## 相关资源 - [国密算法标准](https://www.oscca.gov.cn) - [商用密码应用方案](https://gitee.com/starry123/ruove-sm) # sm2_sm3_sm4_Demo ## 介绍 js实现国密加密 ### 国密加密 sm2 sm3 sm4 #### 截图 ![输入图片说明](./doc/img/index.png "index") ![输入图片说明](./doc/img/sm2.png "index") ![输入图片说明](./doc/img/sm3.png "index") ![输入图片说明](./doc/img/sm4.png "index")