use base64::{engine::general_purpose::STANDARD, Engine as _};
use clap::Parser;
/// 将任意字符串编码成 Base64。
#[derive(Parser)]
#[command(author, version, about)]
struct Args {
/// 要编码的原始字符串;若省略,则从 stdin 读取
input: Option<String>,
}
fn main() {
// 1️ 获取待编码内容
let raw = "-----BEGIN PRIVATE KEY-----
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
-----END PRIVATE KEY-----";
// 2️编码
let encoded = STANDARD.encode(raw);
// 3️输出
println!("{encoded}");
let decoce1 = STANDARD.decode(encoded).unwrap();
println!("{decoce1:?}");
let decode_str = String::from_utf8(decoce1).unwrap();
println!("{decode_str}");
}
[package]
name = "samcheck"
version = "0.1.0"
edition = "2021"
authors = ["bruce "]
[dependencies]
anyhow_ext = "0.2"
futures = "0.3"
ssh2 = "0.9.5"
regex = "1.7.3"
base64 = "0.22"
clap = { version = "4.5", features = ["derive"] }