Add codes for MD5(IP) distribution
This commit is contained in:
28
codes/md5-dist/src/main.rs
Normal file
28
codes/md5-dist/src/main.rs
Normal file
@ -0,0 +1,28 @@
|
||||
use md5::{Digest, Md5};
|
||||
use std::{
|
||||
collections::HashMap,
|
||||
fs::File,
|
||||
io::{BufWriter, Write},
|
||||
};
|
||||
|
||||
fn main() -> std::io::Result<()> {
|
||||
let mut map = HashMap::new();
|
||||
for i in 0u32..=std::u32::MAX {
|
||||
let mut hasher = Md5::new();
|
||||
hasher.update(i.to_le_bytes());
|
||||
let out = hasher.finalize();
|
||||
let key = out[out.len() - 1];
|
||||
*map.entry(key).or_insert(0) += 1;
|
||||
if i % 100_000 == 0 {
|
||||
println!("{i}");
|
||||
}
|
||||
}
|
||||
let mut count_list = map.into_iter().collect::<Vec<_>>();
|
||||
count_list.sort();
|
||||
let file = File::create("./countmap.txt")?;
|
||||
let mut writer = BufWriter::new(file);
|
||||
for (k, v) in count_list {
|
||||
writeln!(writer, "{:02x}: {}", k, v)?;
|
||||
}
|
||||
Ok(())
|
||||
}
|
21
codes/md5-dist/src/main.rs_all_ips_bak
Normal file
21
codes/md5-dist/src/main.rs_all_ips_bak
Normal file
@ -0,0 +1,21 @@
|
||||
use md5::{Digest, Md5};
|
||||
use std::{
|
||||
fs::File,
|
||||
io::{BufWriter, Write},
|
||||
};
|
||||
|
||||
fn main() -> std::io::Result<()> {
|
||||
let file = File::create("./hashes.txt")?;
|
||||
let mut writer = BufWriter::new(file);
|
||||
for i in 0u32..=std::u32::MAX {
|
||||
let mut hasher = Md5::new();
|
||||
// let mut out = [0; 16];
|
||||
hasher.update(i.to_le_bytes());
|
||||
let out = hasher.finalize();
|
||||
writeln!(writer, "{:02x}", out[out.len() - 1])?;
|
||||
if i % 100_000 == 0 {
|
||||
println!("{i}");
|
||||
}
|
||||
}
|
||||
Ok(())
|
||||
}
|
Reference in New Issue
Block a user