4 个版本
0.2.7 | 2024 年 1 月 3 日 |
---|---|
0.2.6 | 2023 年 12 月 26 日 |
0.2.3 | 2023 年 12 月 9 日 |
0.2.2 | 2023 年 12 月 9 日 |
#385 in 密码学
每月 41 次下载
210KB
4K SLoC
铁锈加密库
这个库目前处于预预预预alpha版本,因此不建议在生产环境中使用,文档也不准确。
这是一个在参加加密课程时使用的Rust实现的密码算法集合。
项目结构可能会在未来发生变化,但到目前为止,它是一个包含所有算法作为函数的单个crate。未来我可能会为每个算法创建结构体,并实现Encrypt
和Decrypt
特性。
实现的算法
- 仿射希尔(自定义算法)
- 伯内尔-斐波那契(自定义算法)
- 双分密码
- 凯撒
- DES
- 双重病囊(自定义算法)
- 恩尼格玛
- 小RSA(自定义算法)
- 米尼玛(自定义算法)
- 希尔(尚未实现解密,但可以手动进行解密以获取新密钥)
- 单字母表
- MIX(自定义算法)
- 病囊(自定义算法)
- 转置(尚未实现解密)
- 三重DES(自定义算法)
- Vernam
- Vernam (LKG28)
- 维吉尼亚
- 沃科恩(自定义算法)
使用方法
添加到您的项目中
将以下内容添加到您的 Cargo.toml
从 Gitlab
[dependencies]
ferric_crypto_lib = { git = "https://gitlab.com/ferric1/ferric_crypto.git" }
从路径
[dependencies]
ferric_crypto_lib = { path = "/path/to/ferric_crypto" }
在您的代码中使用
所有算法都在 ferric_crypto_lib
crate 中实现为函数。要使用它们,只需导入crate并调用您想要使用的函数。所有加密函数都在 encrypt
模块中,所有解密函数都在 decrypt
模块中。
示例
TODO:修复示例
use ferric_crypto_lib::encrypt::ceasar::*;
use ferric_crypto_lib::decrypt::ceasar::*;
fn main() {
let encrypted = encrypt("Hello World");
let decrypted = decrypt(&encrypted);
println!("Encrypted: {}", encrypted);
println!("Decrypted: {}", decrypted);
}
构建
先决条件
您需要一些工具来构建库,单击链接以获取安装说明
安装先决条件后,按照以下步骤构建
1. 克隆仓库
使用 HTTPS
```bash
git clone https://gitlab.com/ferric1/ferric_crypto.git
```
使用 SSH
```bash
git clone git@gitlab.com:ferric1/ferric_crypto.git
```
2. 测试库
这是可选的,但建议这么做
just test
3. 构建库
为 Rust 构建
just build
为 Python 构建
在这里您需要 Maturin 来构建
just build-py
4. 安装库
如果您打算在一个Python项目中使用这个库,您需要安装它。这可以通过以下命令完成:
just install-py
这将强制安装它到您的Python环境中,这样我们在开发过程中安装新版本时就不需要先卸载它。
开发
添加加密算法
要添加一个新算法,只需运行以下命令:
just add-algo <name>
这将创建一个名为 <name>.rs
的新文件在 src
文件夹中,并将以下代码添加到其中:
use crate::error::CharacterParseError;
use crate::Traits::{Encrypt, Decrypt};
/// Enum representing possible errors in the name cipher.
#[derive(Debug, PartialEq)]
pub enum nameError {
CharacterParseError(CharacterParseError),
// Define error variants here
}
/// Represents a name cipher.
#[cfg_attr(feature = "python-integration", pyclass)]
pub struct name {
// Define struct fields here
}
impl name {
// Define methods here
fn new() -> Self {
Self {
// Define struct fields here
}
}
}
#[cfg(feature = "python-integration")]
mod python_integration {
use super::*;
use pyo3::prelude::*;
use pyo3::{pyclass, PyResult, pymethods};
#[pymethods]
impl name {
// Define Python integration methods here
}
}
其中,我们将 name
替换为新算法的名称。这还将新算法添加到 mod.rs
文件,位于 src/crypto_systems
文件夹内。我们还在各自的模块中为 Encrypt
、Decrypt
和 BruteForce
特性创建了新的标准文件,这是算法实现的所在之处。
您还需要将新算法添加到定义Python模块的 lib.rs
文件中。
许可证
本项目采用MIT许可证,有关详细信息请参阅LICENSE 文件。
所有者
- Emil Schutt - Tosic.Killer
依赖关系
~35MB
~677K SLoC