草庐IT

几个开源 RUST 安全算法库

这段时间把RUST语法过了一遍,写一些简单的Demo程序没啥问题了,但离掌握这门语言还差的远,需要项目实战才行。我决定从之前研究过的国密算法入手,使用RUST实现国密算法。从头编写算法不太现实,上网搜了一下,还好已经有一些开源RUST安全算法库,基于现有的开源代码实现更加可行。下面就介绍一下RUST加解密库,并选择一个项目作为基础,实现国密算法。Sodiumoxide项目地址:https://github.com/sodiumoxide/sodiumoxide目前项目标记为[DEPRECATED],不再维护。Sodiumoxide并不是纯RUST编写,而是C密码库libsodium的Rust封

算法leetcode|54. 螺旋矩阵(rust重拳出击)

文章目录54.螺旋矩阵:样例1:样例2:提示:分析:题解:rust:go:c++:python:java:每次循环移动一步:每次循环完成一个顺时针:54.螺旋矩阵:给你一个m行n列的矩阵matrix,请按照顺时针螺旋顺序,返回矩阵中的所有元素。样例1:输入: matrix=[[1,2,3],[4,5,6],[7,8,9]] 输出: [1,2,3,6,9,8,7,4,5]样例2:输入: matrix=[[1,2,3,4],[5,6,7,8],[9,10,11,12]] 输出: [1,2,3,4,8,12,11,10,9,5,6,7]提示:m==matrix.lengthn==matrix

[Android AIDL系列 1] 手动编译aidl文件,生成Java、C++[android]、C++[ndk]、Rust接口

AIDL文件在Android系统上应用广泛,和底层的Binder机制紧密关联。在Android源码或者AndroidStudio中通常是自动编译aidl文件,生成对应语言的接口文件。做应用层Java开发,aidl和binder封装的比较“干净”,不用太多的涉及binder的调用细节,也不用太关心aidl的编译过程。如果是做中下层开发,包括framework、native层开发,可能需要编写nativeservice,有必要理解binder的底层机制。先从编译aidl开始。这里只说明编译aidl生成各种类型后端接口文件的过程。生成的接口文件内容再写文章单独介绍。以下演示是在Ubuntu系统上测试

vscode中调试rust程序

文章目录一、vscode运行和调式rust程序二、常见问题1.rust:RequesttextDocument/formattingfailed.2.cargo命令3.使用rust-gdb调试rust程序4.cargobuild太慢一、vscode运行和调式rust程序环境:在WSL(ubuntu20.04)中使用vscode(1)在WSL中安装rust,cargowangji@script-wang:~/code/rust/greeting/src$sudoaptinstallrustc-ywangji@script-wang:~/code/rust/greeting/src$sudoapt

rust学习 - 构建mini 命令行工具

rust的运行速度、安全性、单二进制文件输出和跨平台支持使其成为构建命令行程序的最佳选择。实现一个命令行搜索工具grep,可以在指定文件中搜索指定的字符串。想实现这个功能呢,可以按照以下逻辑流程处理:获取输入文件路径、需要搜索的字符串读取文件;在文件内容中查找字符串所在的行打印包含字符串所在的行信息创建项目ifun-grep$>cargonewifun-grep项目在运行时,可以获取到传递的参数。比如cargorun--hboothello.txt,在文件hello.txt查找字符串hboot读取参数首先要先获取到传入的参数。通过标准库std::env::args获取usestd::env;f

Rust语言 - 接口设计的建议之不意外(unsurprising)

Rust-接口设计建议之不意外(unsurprising)书:RustforRustaceansRust接口设计的原则(建议)四个原则:不意外(unsurprising)灵活(flexible)显而易见(obvious)受约束(constrained)RustAPI指南GitHub:https://github.com/rust-lang/api-guidelinesRustAPI指南中文:https://rust-chinese-translation.github.io/api-guidelines/RustAPI指南:https://rust-lang.github.io/api-gui

Rust每日一练(Leetday0016) 全排列I\II、旋转图像

目录46.全排列Permutations  🌟🌟47.全排列IIPermutationsII  🌟🌟48.旋转图像RotateImage  🌟🌟🌟每日一练刷题专栏 🌟Golang每日一练专栏Python每日一练专栏C/C++每日一练专栏Java每日一练专栏46.全排列Permutations给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。示例1:输入:nums=[1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例2:输入:nums=[0,1]输出:[[0,1],[1,0]]示

Rust每日一练(Leetday0012) 首末位置、插入位置、有效数独

目录34.查找元素的首末位置Find-first-and-last-position-of-element-in-sorted-array  🌟🌟35.搜索插入位置SearchInsertPosition  🌟36.有效的数独ValidSudoku  🌟🌟🌟每日一练刷题专栏 🌟Rust每日一练专栏Golang每日一练专栏Python每日一练专栏C/C++每日一练专栏Java每日一练专栏34.查找元素的首末位置Find-first-and-last-position-of-element-in-sorted-array  🌟🌟原标题:在排序数组中查找元素的第一个和最后一个位置给定一个按照升序排列

文盘Rust -- tokio绑定cpu实践

tokio是rust生态中流行的异步运行时框架。在实际生产中我们如果希望tokio应用程序与特定的cpucore绑定该怎么处理呢?这次我们来聊聊这个话题。首先我们先写一段简单的多任务程序。usetokio::runtime;pubfnmain(){letrt=runtime::Builder::new_multi_thread().enable_all().build().unwrap();rt.block_on(async{foriin0..8{println!("num{}",i);tokio::spawn(asyncmove{loop{letmutsum:i32=0;foriin0..1

Rust开发环境搭建(Linux)

1、使用Rustup安装       执行如下命令curl--proto'=https'--tlsv1.2-sSfhttps://sh.rustup.rs|sh       执行结果如下:        在这里使用默认的安装,执行结果如下:2、配置Rust环境变量        当出现Rustisinstallednow.Great时执行如下命令配置Rust环境变量source$HOME/.cargo/env        在Rust开发环境中,所有工具都安装在~/.cargo/bin目录中,您可以在这里找到包括rustc、cargo和rustup在内的Rust工具链。3、验证是否安装成功