Advertisement
Guest User

Untitled

a guest
Sep 21st, 2019
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rust 3.49 KB | None | 0 0
  1. use crypto::{digest::Digest, sha2::Sha256};
  2.  
  3. //use rand::{thread_rng, Rng, distributions::Alphanumeric};
  4.  
  5. use std::{
  6.     time::Duration,
  7.     thread,
  8.     sync::{
  9.         atomic::{
  10.             AtomicU32, Ordering
  11.         },
  12.         Arc
  13.     }
  14. };
  15.  
  16. extern crate num_cpus;
  17. // base 36 copied from KristVanity
  18. 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'];
  19. fn sha256hex(x: String) -> String {
  20.     let mut hasher = Sha256::new();
  21.     hasher.input_str(&x);
  22.     return hasher.result_str();
  23. }
  24. /*
  25. fn getrandstringlol() -> String {
  26.     thread_rng()
  27.         .sample_iter(&Alphanumeric)
  28.         .take(30)
  29.         .collect()
  30.  
  31. }
  32. */
  33. fn makev2addr(key: String) -> String {
  34.     // pretty much a straight port of krist source code
  35.     let mut address = String::from("k");
  36.     let mut chars: [String; 9] = ["".to_string() , "".to_string() , "".to_string(), "".to_string(), "".to_string(), "".to_string(), "".to_string(), "".to_string(), "".to_string()];
  37.     let mut hash = sha256hex(sha256hex(key));
  38.    
  39.     for i in 0..9 {
  40.         /*chars[i] = hash.get(..2).unwrap();*/
  41.         let e = hash.get(..2).unwrap();
  42.         //println!("{}",e);
  43.         chars[i] = e.to_string();
  44.         hash = sha256hex(sha256hex(hash));
  45.     }
  46.  
  47.     let mut i = 0;
  48.     loop {
  49.         if i > 8  { break }
  50.         let index = usize::from_str_radix( &hash[2*i .. 2 + (2 * i)] , 16).unwrap() % 9;
  51.        
  52.         if chars[index] == "" {
  53.             hash = sha256hex(hash);
  54.         }
  55.         else {
  56.             address.push(B36_LOOKUP[usize::from_str_radix(&chars[index], 16).unwrap()]);
  57.             chars[index] = "".to_string();
  58.             i = i + 1;
  59.         }
  60.     }
  61.     return address
  62. }
  63.  
  64. fn main() {
  65.     let addrc = Arc::new(AtomicU32::new(0));
  66.     let otherclone = addrc.clone();
  67.    // let mut y = &x;
  68.     thread::spawn(move ||{
  69.         let one_second = Duration::from_secs(1);
  70.         loop {
  71.             thread::sleep(one_second);
  72.             println!("address/second: {}", otherclone.swap(0, Ordering::Relaxed));
  73.         }
  74.     });
  75.     println!("{}", num_cpus::get());
  76.     for i in 1..num_cpus::get() {
  77.         let mar = addrc.clone();
  78.         thread::spawn(move||{
  79.             let mared = mar;
  80.        loop {
  81.            
  82.             makev2addr(
  83.              "test".to_string()
  84.                  );
  85.         mared.fetch_add(1, Ordering::Relaxed);
  86.              /*  if x % 10000 == 0  {
  87.                 println'!("{} : {} ( {} )'", makev2addr(e), f,x);
  88.         } */
  89.          }
  90.  
  91.         });
  92.     }
  93.      loop {}
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement