3个版本

0.1.2 2022年1月16日
0.1.1 2022年1月16日
0.1.0 2022年1月16日

#205 in Windows API

MIT 许可证

10KB
66

Win-Base64 API

描述

对Windows API Base64编码和解码的一个简单包装

  1. 字符串转Base64 (encode)
  2. Base64转字符串 (decode)

示例代码

use win_base64::decode;
use win_base64::encode;
let text = "What's up?😊🥘🍲🚩🏁🚀👌😁👍😍❤️💕🎶";
let base64_string = encode(&text)?;
let decoded_text = decode(&base64_string)?;
// If it worked, text and decoded_text would be the same
println!("Original: {}", text);
println!("Decoded : {}", decoded_text);

输出

原始: What's up?😊👌😁👍😍❤️💕🎶
解码: What's up?😊👌😁👍😍❤️💕🎶

是的,这个支持表情符号。

base64库类似的代码

let a = "hello world";
let b = "aGVsbG8gd29ybGQ=";

assert_eq!(encode(a)?, b);
assert_eq!(a, &decode(b)?[..]);

多次解码

  1. 解码为&mut [u8] (decode_as_mut8)
    可能是最快的
    但大小需要手动指定。
    因此可能也是风险最高的。

     let text = "What's up?";
     let base64_string = encode(&text)?;
     let mut decoded_arr = vec![0u8; 10];
     use win_base64::decode_as_mut8;
     decode_as_mut8(&base64_string, &mut decoded_arr)?;
     // If it worked, text and decoded_text would be the same
     println!("Original: {}", text);
     println!("Decoded : {:?}", decoded_arr);
    
  2. 解码为Vec<u8> (decode_as_vecu8)
    分配正确大小的vec,并返回解码后的值。比mut u8更安全,因为它知道解码后的大小

    let text = "What's up?";
    let base64_string = encode(&text)?;
    use win_base64::decode_as_vecu8;
    let decoded_vec = decode_as_vecu8(&base64_string)?;
    // If it worked, text and decoded_text would be the same
    println!("Original: {}", text);
    println!("Decoded : {:?}", decoded_vec);
    
  3. 解码为字符串 (decode)
    在顶部示例中展示

    use win_base64::decode;
    use win_base64::encode;
    let text = "What's up?😊🥘🍲🚩🏁🚀👌😁👍😍❤️💕🎶";
    let base64_string = encode(&text)?;
    let decoded_text = decode(&base64_string)?;
    // If it worked, text and decoded_text would be the same
    println!("Original: {}", text);
    println!("Decoded : {}", decoded_text);
    

依赖项

~129MB
~2M SLoC