Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use crypto::{digest::Digest, sha2::Sha256};
- //use rand::{thread_rng, Rng, distributions::Alphanumeric};
- use std::{
- time::Duration,
- thread,
- sync::{
- atomic::{
- AtomicU32, Ordering
- },
- Arc
- }
- };
- extern crate num_cpus;
- // base 36 copied from KristVanity
- static B36_LOOKUP: [char; 256] = ['0','0','0','0','0','0','0','1','1','1','1','1','1','1','2','2','2','2','2','2','2','3','3','3','3','3','3','3','4','4','4','4','4','4','4','5','5','5','5','5','5','5','6','6','6','6','6','6','6','7','7','7','7','7','7','7','8','8','8','8','8','8','8','9','9','9','9','9','9','9','a','a','a','a','a','a','a','b','b','b','b','b','b','b','c','c','c','c','c','c','c','d','d','d','d','d','d','d','e','e','e','e','e','e','e','f','f','f','f','f','f','f','g','g','g','g','g','g','g','h','h','h','h','h','h','h','i','i','i','i','i','i','i','j','j','j','j','j','j','j','k','k','k','k','k','k','k','l','l','l','l','l','l','l','m','m','m','m','m','m','m','n','n','n','n','n','n','n','o','o','o','o','o','o','o','p','p','p','p','p','p','p','q','q','q','q','q','q','q','r','r','r','r','r','r','r','s','s','s','s','s','s','s','t','t','t','t','t','t','t','u','u','u','u','u','u','u','v','v','v','v','v','v','v','w','w','w','w','w','w','w','x','x','x','x','x','x','x','y','y','y','y','y','y','y','z','z','z','z','z','z','z','e','e','e','e'];
- fn sha256hex(x: String) -> String {
- let mut hasher = Sha256::new();
- hasher.input_str(&x);
- return hasher.result_str();
- }
- /*
- fn getrandstringlol() -> String {
- thread_rng()
- .sample_iter(&Alphanumeric)
- .take(30)
- .collect()
- }
- */
- fn makev2addr(key: String) -> String {
- // pretty much a straight port of krist source code
- let mut address = String::from("k");
- let mut chars: [String; 9] = ["".to_string() , "".to_string() , "".to_string(), "".to_string(), "".to_string(), "".to_string(), "".to_string(), "".to_string(), "".to_string()];
- let mut hash = sha256hex(sha256hex(key));
- for i in 0..9 {
- /*chars[i] = hash.get(..2).unwrap();*/
- let e = hash.get(..2).unwrap();
- //println!("{}",e);
- chars[i] = e.to_string();
- hash = sha256hex(sha256hex(hash));
- }
- let mut i = 0;
- loop {
- if i > 8 { break }
- let index = usize::from_str_radix( &hash[2*i .. 2 + (2 * i)] , 16).unwrap() % 9;
- if chars[index] == "" {
- hash = sha256hex(hash);
- }
- else {
- address.push(B36_LOOKUP[usize::from_str_radix(&chars[index], 16).unwrap()]);
- chars[index] = "".to_string();
- i = i + 1;
- }
- }
- return address
- }
- fn main() {
- let addrc = Arc::new(AtomicU32::new(0));
- let otherclone = addrc.clone();
- // let mut y = &x;
- thread::spawn(move ||{
- let one_second = Duration::from_secs(1);
- loop {
- thread::sleep(one_second);
- println!("address/second: {}", otherclone.swap(0, Ordering::Relaxed));
- }
- });
- println!("{}", num_cpus::get());
- for i in 1..num_cpus::get() {
- let mar = addrc.clone();
- thread::spawn(move||{
- let mared = mar;
- loop {
- makev2addr(
- "test".to_string()
- );
- mared.fetch_add(1, Ordering::Relaxed);
- /* if x % 10000 == 0 {
- println'!("{} : {} ( {} )'", makev2addr(e), f,x);
- } */
- }
- });
- }
- loop {}
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement