LuoZijun 发表于 2020-10-20 20:29
Github: https://github.com/LuoZijun/crypto
描述:支持了 所有的 AEAD 算法。
状态: 持续开发当中。
大神呀! 我在 github 上又提了一个 issue 。请您有空时看看呀!https://github.com/shadowsocks/crypto/issues/4
大神,我以【左填充对齐】的方式,当遇到【明文】长度不是 16 字节的整数倍时,左填充 0 至 utf-8 字节数组的左侧,再执行【sm4 - cbc 加密】;另一方面,在【解密】过程中,先执行【sm4 - cbc 解密】,再扣掉【明文】utf-8 字节数组左侧的 0 字节,再将 utf-8 字节数组 变换成 utf-8 字符串。
上面这个作法的确可以成功地【加密】与【解密】本文密码信息。但是,要求【前端】与【后端】都使用我这套实现。
我想问:关于【填充对齐】方式,是否有规范的作法或统一的标准?
这样的话,【前端】可以接着使用您的库和 rust + wasm 包,而【后端】可以使用 JAVA 实现的【sm4 - cbc 解密】包。别我在【前端】加密之后,因为对【填充对齐】的约定与假设不同,造成【后端】JAVA 版的【sm4 - cbc 解密】不能获得正确的值。
-- 👇 stuartZhang: 大神,我把这个问题也提到的 github 的 issue 里了。您的 crypto 库能够被交叉编译至 wasm 架构。膜拜,五体投地!
-- 👇 stuartZhang: 大神,您的 crypto 库真心地佬强大了。
crypto2 = {git = "https://github.com/shadowsocks/crypto", branch = "master", package = "crypto"}
但是,在这里我的问题来了。解密之后的明文字符串是
\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}abcde,123
我分析:上面一连串的 \u{0} 是我在加密过程中,给 &[u8] 数组左填充的 0。右侧的解决结果 abcde,123 是正确的。太牛了!!!
大神,对于潜在任意长度的【明文】 字符串,我如何才能避免或解决(加密过程中)由 &[u8] 数组扩容(长度必须是 16 的整数倍)填充值 0 造成的 解密结果里的 \u{0} 呀?
大神,我不知道我在上面的描述是否清晰。但,还是请求您的帮助。
大神,我把这个问题也提到的 github 的 issue 里了。您的 crypto 库能够被交叉编译至 wasm 架构。膜拜,五体投地!
大神,您的 crypto 库真心地佬强大了。
编译到 WASM 将无法使用 硬件加速功能。对于 AES 而言,软件的实现并没有硬件的实现安全高效。
-- 👇 stuartZhang: 大神,我给您的 github 工程提了一个 issue 。您是否有时间看看呀?
俺要把这个工程作为依赖关联上我们的 rust + wasm 工程,做 sm4 的 cbc 加密。我们之前使用的 sm4 不支持 cbc 模式。
等 cargo test 编译成功之后,我再看看交叉编译到 wasm 架构是否能成?
大神,我给您的 github 工程提了一个 issue 。您是否有时间看看呀?
大神,咱们这个加密库是否支持交叉编译到 wasm 架构上?是否使用过一些在 wasm 架构上不支持的语言特性呀?
欢迎。
-- 👇 老牛: 有兴趣参与
暂未发布。
-- 👇 stuartZhang: 大神,我还有一个问题,咱们这个库是否有发布到 crates.io 包管理平台呀?看版本和这个(https://crates.io/crates/crypto)对不上的。
-- 👇 LuoZijun: ```rust use crypto::blockmode::Sm4Cbc;
fn main() { let key = [1u8; Sm4Cbc::KEY_LEN]; let nonce = [1u8; Sm4Cbc::NONCE_LEN];
let mut cipher = Sm4Cbc::new(&key, &nonce); let mut data = [1u8; Sm4Cbc::BLOCK_LEN]; cipher.encrypt(&mut data); cipher.decrypt(&mut data);
}
-- 👇 stuartZhang: 求 sm4 加密的 cbc 模式的使用例程。
大神,我还有一个问题,咱们这个库是否有发布到 crates.io 包管理平台呀?看版本和这个(https://crates.io/crates/crypto)对不上的。
今天晚上,我回家试试。大神,我还有一个问题,咱们这个库,是否支持 wasm-pack 交叉编译为 wasm 文件呀?
我对 rust 的使用场景主要是 rust + wasm 然后使用在浏览器里。
use crypto::blockmode::Sm4Cbc; fn main() { let key = [1u8; Sm4Cbc::KEY_LEN]; let nonce = [1u8; Sm4Cbc::NONCE_LEN]; let mut cipher = Sm4Cbc::new(&key, &nonce); let mut data = [1u8; Sm4Cbc::BLOCK_LEN]; cipher.encrypt(&mut data); cipher.decrypt(&mut data); }
求 sm4 加密的 cbc 模式的使用例程。
无论是学习还是参与建设都十分有价值!
有兴趣参与
加油!
评论区
写评论大神呀! 我在 github 上又提了一个 issue 。请您有空时看看呀!https://github.com/shadowsocks/crypto/issues/4
大神,我以【左填充对齐】的方式,当遇到【明文】长度不是 16 字节的整数倍时,左填充 0 至 utf-8 字节数组的左侧,再执行【sm4 - cbc 加密】;另一方面,在【解密】过程中,先执行【sm4 - cbc 解密】,再扣掉【明文】utf-8 字节数组左侧的 0 字节,再将 utf-8 字节数组 变换成 utf-8 字符串。
上面这个作法的确可以成功地【加密】与【解密】本文密码信息。但是,要求【前端】与【后端】都使用我这套实现。
我想问:关于【填充对齐】方式,是否有规范的作法或统一的标准?
这样的话,【前端】可以接着使用您的库和 rust + wasm 包,而【后端】可以使用 JAVA 实现的【sm4 - cbc 解密】包。别我在【前端】加密之后,因为对【填充对齐】的约定与假设不同,造成【后端】JAVA 版的【sm4 - cbc 解密】不能获得正确的值。
--
👇
stuartZhang: 大神,我把这个问题也提到的 github 的 issue 里了。您的 crypto 库能够被交叉编译至 wasm 架构。膜拜,五体投地!
--
👇
stuartZhang: 大神,您的 crypto 库真心地佬强大了。
但是,在这里我的问题来了。解密之后的明文字符串是
我分析:上面一连串的 \u{0} 是我在加密过程中,给 &[u8] 数组左填充的 0。右侧的解决结果 abcde,123 是正确的。太牛了!!!
大神,对于潜在任意长度的【明文】 字符串,我如何才能避免或解决(加密过程中)由 &[u8] 数组扩容(长度必须是 16 的整数倍)填充值 0 造成的 解密结果里的 \u{0} 呀?
大神,我不知道我在上面的描述是否清晰。但,还是请求您的帮助。
大神,我把这个问题也提到的 github 的 issue 里了。您的 crypto 库能够被交叉编译至 wasm 架构。膜拜,五体投地!
--
👇
stuartZhang: 大神,您的 crypto 库真心地佬强大了。
但是,在这里我的问题来了。解密之后的明文字符串是
我分析:上面一连串的 \u{0} 是我在加密过程中,给 &[u8] 数组左填充的 0。右侧的解决结果 abcde,123 是正确的。太牛了!!!
大神,对于潜在任意长度的【明文】 字符串,我如何才能避免或解决(加密过程中)由 &[u8] 数组扩容(长度必须是 16 的整数倍)填充值 0 造成的 解密结果里的 \u{0} 呀?
大神,我不知道我在上面的描述是否清晰。但,还是请求您的帮助。
大神,您的 crypto 库真心地佬强大了。
但是,在这里我的问题来了。解密之后的明文字符串是
我分析:上面一连串的 \u{0} 是我在加密过程中,给 &[u8] 数组左填充的 0。右侧的解决结果 abcde,123 是正确的。太牛了!!!
大神,对于潜在任意长度的【明文】 字符串,我如何才能避免或解决(加密过程中)由 &[u8] 数组扩容(长度必须是 16 的整数倍)填充值 0 造成的 解密结果里的 \u{0} 呀?
大神,我不知道我在上面的描述是否清晰。但,还是请求您的帮助。
编译到 WASM 将无法使用 硬件加速功能。对于 AES 而言,软件的实现并没有硬件的实现安全高效。
--
👇
stuartZhang: 大神,我给您的 github 工程提了一个 issue 。您是否有时间看看呀?
俺要把这个工程作为依赖关联上我们的 rust + wasm 工程,做 sm4 的 cbc 加密。我们之前使用的 sm4 不支持 cbc 模式。
等 cargo test 编译成功之后,我再看看交叉编译到 wasm 架构是否能成?
大神,我给您的 github 工程提了一个 issue 。您是否有时间看看呀?
俺要把这个工程作为依赖关联上我们的 rust + wasm 工程,做 sm4 的 cbc 加密。我们之前使用的 sm4 不支持 cbc 模式。
等 cargo test 编译成功之后,我再看看交叉编译到 wasm 架构是否能成?
大神,咱们这个加密库是否支持交叉编译到 wasm 架构上?是否使用过一些在 wasm 架构上不支持的语言特性呀?
欢迎。
--
👇
老牛: 有兴趣参与
暂未发布。
--
👇
stuartZhang: 大神,我还有一个问题,咱们这个库是否有发布到 crates.io 包管理平台呀?看版本和这个(https://crates.io/crates/crypto)对不上的。
--
👇
LuoZijun: ```rust use crypto::blockmode::Sm4Cbc;
fn main() { let key = [1u8; Sm4Cbc::KEY_LEN]; let nonce = [1u8; Sm4Cbc::NONCE_LEN];
}
大神,我还有一个问题,咱们这个库是否有发布到 crates.io 包管理平台呀?看版本和这个(https://crates.io/crates/crypto)对不上的。
--
👇
LuoZijun: ```rust use crypto::blockmode::Sm4Cbc;
fn main() { let key = [1u8; Sm4Cbc::KEY_LEN]; let nonce = [1u8; Sm4Cbc::NONCE_LEN];
}
今天晚上,我回家试试。大神,我还有一个问题,咱们这个库,是否支持 wasm-pack 交叉编译为 wasm 文件呀?
我对 rust 的使用场景主要是 rust + wasm 然后使用在浏览器里。
--
👇
LuoZijun: ```rust use crypto::blockmode::Sm4Cbc;
fn main() { let key = [1u8; Sm4Cbc::KEY_LEN]; let nonce = [1u8; Sm4Cbc::NONCE_LEN];
}
--
👇
stuartZhang: 求 sm4 加密的 cbc 模式的使用例程。
求 sm4 加密的 cbc 模式的使用例程。
无论是学习还是参与建设都十分有价值!
有兴趣参与
加油!