LINUX.ORG.RU

Дед Мороз решил создать свою криптовалюту

 


0

3

Дед Мороз решил создать свою криптовалюту MorozCoin (очень похожую на Bitcoin), дабы использовать в качестве подарков экономически продвинутым девочкам и мальчикам, и ему требуется помощь.

Чтобы помочь ему, требуется найти хеши MD5, которые в шестнадцатиричном виде начинаются как минимум с семи нулей. На вход функции хеширования подаётся строка «moroz» (без кавычек), конкатенированная с числом в десятичной записи. Чтобы намайнить Деду Морозу его валюту, вам нужно найти ему минимальное положительное число (без ведущих нулей: 1, 2, 3, ...), которое даёт удовлетворяющий вышеописанному условию хеш.

Реализуйте описанный майнер на вашем любимом языке программирования.



Последнее исправление: a1batross (всего исправлений: 1)

Говнокодец, зато быстрый и параллельный.

extern crate num_cpus;
extern crate openssl;

use openssl::crypto::hash::Type::MD5;
use openssl::crypto::hash::hash;
use std::thread;

fn main() {
    let key = b"moroz".to_vec();
    let cpus = num_cpus::get();

    for p in 0..cpus {
        let key = key.clone();
        thread::spawn(move || {
            for i in 0.. {
                let mut k = key.clone();
                let pass = i * cpus + p + 1;
                let pass_ = format!("{}", pass);
                let pass_ = pass_.as_bytes();
                k.extend_from_slice(pass_);
                let h = hash(MD5, &k);
                if h[0] == 0 && h[1] == 0 && h[2] == 0 && h[3] < 16 {
                    println!("{}", pass);
                    std::process::exit(0);
                }
            }
        });
    }

    loop {
        std::thread::sleep(std::time::Duration::from_secs(u32::max_value() as u64));
    }
}

[kevindetry@BlackBox advent]$ time ./target/release/advent 
321966836

real	0m34.931s
user	2m17.837s
sys	0m0.107s
Deleted
()
Ответ на: комментарий от Deleted

вывод даты через system

дыы ))

при этом нет вывода времени после выполнения

и в мыслях не было

результирующего числа, впрочем, в выводе тоже нет

в переписанном варианте есть )

FOUNT

гыы

Ох лол :D

Хехе, я не программист и инглиша не знаю + оно у меня не правильно вычисляет, слил по всему и вся, а мне по#, мне весело ::)

Dron ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.