Приклад на Rust: Генерація пари відкритого/приватного ключа за допомогою sodiumoxide та збереження у файл
Ця проста програма на Rust демонструє, як згенерувати пару відкритого/приватного ключа за допомогою крейту sodiumoxide та зберегти ключі у файли у форматі base64.
src/main.rs
use sodiumoxide::crypto::sign;
use std::fs::File;
use std::io::Write;
use std::path::Path;
use base64::{Engine as _, engine::general_purpose};
fn main() -> Result<(), Box<dyn std::error::Error>> {
// Ініціалізувати sodiumoxide
sodiumoxide::init().expect("Не вдалося ініціалізувати sodiumoxide");
// Згенерувати нову пару ключів
let (public_key, secret_key) = sign::gen_keypair();
// Перетворити ключі на base64
let public_key_b64 = general_purpose::STANDARD.encode(public_key.as_ref());
let secret_key_b64 = general_purpose::STANDARD.encode(secret_key.as_ref());
// Визначити шляхи до файлів
let public_key_path = Path::new("public_key.b64");
let secret_key_path = Path::new("secret_key.b64");
// Зберегти відкритий ключ у файл
let mut public_key_file = File::create(public_key_path)?;
public_key_file.write_all(public_key_b64.as_bytes())?;
// Зберегти приватний ключ у файл
let mut secret_key_file = File::create(secret_key_path)?;
secret_key_file.write_all(secret_key_b64.as_bytes())?;
println!("Пару ключів згенеровано та успішно збережено!");
println!("Відкритий ключ збережено до: {:?}", public_key_path);
println!("Приватний ключ збережено до: {:?}", secret_key_path);
Ok(())
}Cargo.toml
[package]
name = "MakeKeyPair"
version = "0.1.0"
edition = "2021"
[dependencies]
sodiumoxide = "0.2"
base64 = "0.21"Як запустити
run.sh
cargo runВивід
output.txt
Відкритий ключ збережено до: "public_key.b64"
Приватний ключ збережено до: "secret_key.b64"Дивіться схожі статті за категоріями:
Cryptography, Rust
Якщо ця стаття допомогла вам, будь ласка, подумайте про те, щоб купити мені каву або зробити пожертву через PayPal на підтримку досліджень та публікації нових статей на TechOverflow