当前位置: 首页 > news >正文

网站开发维护网页游戏网站首页

网站开发维护,网页游戏网站首页,黔西南州做网站,做电商必备的八个软件文章目录 一、实现Sha-256加密1.创建项目2.编写Cargo.toml文件3.编写程序代码 二、sha256爆破1.获取命令行参数2.读取文件3.校验输入参数4.暴力破解 一、实现Sha-256加密 SHA-256是一种安全哈希算法,主要特点是将输入的数据(无论长度)通过特定…

文章目录

  • 一、实现Sha-256加密
    • 1.创建项目
    • 2.编写Cargo.toml文件
    • 3.编写程序代码
  • 二、sha256爆破
    • 1.获取命令行参数
    • 2.读取文件
    • 3.校验输入参数
    • 4.暴力破解


一、实现Sha-256加密

SHA-256是一种安全哈希算法,主要特点是将输入的数据(无论长度)通过特定的计算方式,生成一个固定长度为256位的哈希值,通常表示为64个十六进制字符。基于其单向性,即从哈希值无法逆推出原始输入数据,通常被用于密码的存储。

SHA-256是SHA-1算法的后继者,其名称来源于安全散列算法2(Secure Hash Algorithm 2)的缩写。SHA-2系列下包含六个不同的算法标准,分别是SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。这些变体在生成摘要的长度和一些微小细节上有所不同,但基本结构是一致的。

1.创建项目

$ cargo new sha256_cracker

2.编写Cargo.toml文件

因为Rust标准库本身并不直接提供SHA-256功能,通常使用外部库sha2完成,它提供了SHA-256以及其他SHA-2哈希算法的实现。

[package]
name = "sha256_cracker"
version = "0.1.0"
edition = "2021"# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
# 以上为cargo自动创建,添加下面库就可以[dependencies]  
sha2 = "0.9.9"
hex = "0.4"

3.编写程序代码

use sha2::{Digest, Sha256};  fn main() {  let data = "admin123";  let hash = Sha256::digest(data.as_bytes());  // 将结果转换为十六进制字符串表示  let hash_hex = hex::encode(hash);  println!("SHA-256 hash of '{}' is {}", data, hash_hex);  //SHA-256 hash of 'admin123' is 240be518fabd2724ddb6f04eeb1da5967448d7e831c08c8fa822809f74c720a9
}

二、sha256爆破

基于其单向性,即从哈希值无法逆推出原始输入数据,目前只能通过暴力破解的方式对密码进行匹配。

1.获取命令行参数

use std::env;
fn main() {let args: Vec<String> = env::args().collect();println!("{:?}",args); //["./sha256_cracker", "111", "222"]
}

2.读取文件

use std::{env,error::Error,fs::File,io::{BufRead, BufReader},
};
fn main() -> Result<(), Box<dyn Error>> {let args: Vec<String> = env::args().collect();let wordlist_file = File::open(&args[1])?;let reader = BufReader::new(&wordlist_file);for line in reader.lines() {let line = line?.trim().to_string();println!("{}", line);}Ok(())
}# /home/kali/Desktop/ctf/pass.txt是密码字典
$ ./sha256_cracker /home/kali/Desktop/ctf/pass.txt
admin888
test
123qwe
password123
1q2w3e
test123
mysql
....

3.校验输入参数

use std::{env,error::Error,fs::File,io::{BufRead, BufReader},
};
// 定义sha245 hash字符串的长度
const SHA256_HEX_STRING_LENGTH: usize = 64;
fn main() -> Result<(), Box<dyn Error>> {let args: Vec<String> = env::args().collect();// 输入参数校验,参数不足提示输入格式if args.len() != 3 {println!("Usage:");println!("sha256_cracker: <wordlist.txt> <sha256_hash>");return Ok(());}// 校验sha245十六进制字符串长度,不是64位提示错误let hash_to_crack = args[2].trim();if hash_to_crack.len() != SHA256_HEX_STRING_LENGTH {return Err("sha256 hash is not valid".into());}// 读取文件let wordlist_file = File::open(&args[1])?;let reader = BufReader::new(&wordlist_file);for line in reader.lines() {let line = line?.trim().to_string();println!("{}", line);}Ok(())
}

4.暴力破解

use std::{env,error::Error,fs::File,io::{BufRead, BufReader},
};
use sha2::{Digest, Sha256};  
// 定义sha245 hash字符串的长度
const SHA256_HEX_STRING_LENGTH: usize = 64;
fn main() -> Result<(), Box<dyn Error>> {// 获取输出参数let args: Vec<String> = env::args().collect();// 输入参数校验,参数不足提示输入格式if args.len() != 3 {println!("Usage:");println!("sha256_cracker: <wordlist.txt> <sha256_hash>");return Ok(());}// 校验sha245十六进制字符串长度,不是64位提示错误let hash_to_crack = args[2].trim();if hash_to_crack.len() != SHA256_HEX_STRING_LENGTH {return Err("sha256 hash is not valid".into());}// 读取文件let wordlist_file = File::open(&args[1])?;let reader = BufReader::new(&wordlist_file);for line in reader.lines() {// 逐行读取,并对读取的字符串进行sha256加密let line = line?.trim().to_string();let hash = Sha256::digest(line.as_bytes());  let hash_hex = hex::encode(hash);  // 匹配加密字符串,如果一致则输出if hash_hex == args[2]{println!("Succeed!password is : {}",line);return Ok(());}}println!("Failed ... password is not found!");return Ok(());
}

本文部分内容参考《black hat rust》一书

http://www.yayakq.cn/news/177880/

相关文章:

  • 西安开发网站建设python菜鸟教程官网
  • 网站的301重定向怎么做网站流量地址评价是什么意思
  • 做刀网站网站服务器查找
  • 石家庄视频网站建设公司wordpress的修订
  • 接私活做网站旅游电商网站建设方案
  • 电子商务网站建设与维护能赚多少钱网站制作 php
  • 设计师接私单做网站建筑工程施工承包合同
  • 公司制作网站费用免费网站推广服务
  • 手机网站信任从哪里设置企业公司建网站的步骤
  • 自学做视频网站成都到西安高铁
  • 广东住房和城乡建设厅官方网站甘肃省建设局网站首页
  • 没有注册公司可以做网站吗企业网站设计的基本原则有哪些
  • 网站栏目划分怎么做搭建网页游戏
  • 企业门户网站建设行情自己电脑做网站教程
  • 网站尾部设计百度网站广告怎么做
  • 白宫网站 wordpress股票场外期权网站开发
  • 怎么部署自己的网站wordpress页面布局构造器
  • 上海信息公司做网站中企动力z云邮箱
  • 大气的企业网站设计软文营销的宗旨是什么
  • 郑州哪里有做网站滨城网站开发
  • wordpress登录可见代码建站优化一条龙
  • 网站建设网页设计网站模板高端文化网站
  • 网站 制作 工具文化馆网站数字化建设介绍
  • 做房地产要自己开网站微信生活门户网站源码
  • 杭州网站建设长春公司河南郑州特产
  • 深圳定制建站公司电话专业网站建设行业现状
  • ftp怎么上传网站水利网站建设
  • 大连模板网站制作推荐wordpress安装流程图
  • 找人做网站需要什么软件wordpress+魅族
  • 众创空间网站建设湖南华图企业展厅设计公司