# regitry-code
## 概述
regitry-code 是一个使用 SM2 国密算法进行加密、解密和生成注册码的命令行工具。
## 功能
* 生成 SM2 密钥对
* 使用公钥加密字符串
* 使用私钥解密字符串
* 生成注册码(包含用户信息和有效期,使用 SM2 加密)
* 解码注册码
## regitry-code 库
除了命令行工具外,`regitry-code` 还提供了一个库,其中包含 `generate_code` 和 `decode_code` 两个函数,可以方便地在其他 Rust 项目中使用。
### 如何引入
要在您的 Rust 项目中使用 `regitry_code` 库,您需要将其添加为依赖项。在您的 `Cargo.toml` 文件的 `[dependencies]` 部分添加以下一行:
```toml
regitry_code = { version="0.1.0" } # 假设 regitry-code 库位于您的项目的上级目录
```
### 如何使用
引入 `regitry-code` 库后,您就可以在您的 Rust 代码中使用 `generate_code` 和 `decode_code` 函数了。
**`generate_code` 函数**
```rust
use regitry_code::{generate_code, read_key_ile};
fn main() {
let email = "test@example.com";
let days = 30;
let public_key_path = "public.key"; // 公钥文件路径
// 读取公钥
let public_key = read_key_ile(public_key_path);
// 生成注册码
let code = generate_code(email, days, &public_key);
println!("Register code: {}", code);
}
```
**`decode_code` 函数**
```rust
use regitry_code::{decode_code, read_key_file};
fn main() {
let code = "your_register_code";
let private_key_path = "private.key"; // 私钥文件路径
// 读取私钥
let private_key = read_key_file(private_key_path);
// 解码注册码
let (email, expire_time) = decode_code(code, &private_key);
println!("Email: {}", email);
println!("Expire time: {}", expire_time);
}
```