rust如何使用3des加密(或解密)

引入依赖

[dependencies]
hex-literal = "0.4.1"
hex="0.4.3"
des = "0.8.1"
base64 = "0.21.0"

上代码:

use des::cipher::generic_array::GenericArray;
use des::cipher::BlockEncrypt;
use des::cipher::KeyInit;
use des::TdesEde3;
use hex_literal::hex;

fn main() {
	//24位的key
    let key = hex!("111111111111111122222222222222223333333333333333");
    println!("len={}", key.len());

    let mut key_byte = [0u8; 24];
    key_byte.copy_from_slice(&key.to_vec());
    let key2 = GenericArray::from(key_byte);

    let tdes = TdesEde3::new(&key2);

	//数据是1234,但不足8位,采用PKCS7Padding或PKCS5Padding 后面几位填4
    let mut block_data = [0u8; 8];
    block_data[0] = b'1';
    block_data[1] = b'2';
    block_data[2] = b'3';
    block_data[3] = b'4';
    block_data[4] = 4;
    block_data[5] = 4;
    block_data[6] = 4;
    block_data[7] = 4;

    let mut block = GenericArray::from(block_data);
    tdes.encrypt_block(&mut block);

    let after_vec = block.to_vec();

    println!("{}", after_vec.len());
    let s = hex::encode(after_vec);
    println!("{}", s);

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值