mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-07-22 11:25:42 +00:00
Use a simpler increment seed iterator. (#186)
* Use a simpler increment seed iterator. * Use more secure seeding.
This commit is contained in:
committed by
Robert Habermeier
parent
c831e7c511
commit
66affa2b95
Generated
+1
@@ -1851,6 +1851,7 @@ name = "subkey"
|
|||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ed25519 0.1.0",
|
"ed25519 0.1.0",
|
||||||
|
"rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"substrate-primitives 0.1.0",
|
"substrate-primitives 0.1.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -6,3 +6,4 @@ authors = ["Parity Technologies <admin@parity.io>"]
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
ed25519 = { version = "*", path = "../substrate/ed25519" }
|
ed25519 = { version = "*", path = "../substrate/ed25519" }
|
||||||
substrate-primitives = { version = "*", path = "../substrate/primitives" }
|
substrate-primitives = { version = "*", path = "../substrate/primitives" }
|
||||||
|
rand = "0.4"
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
extern crate ed25519;
|
extern crate ed25519;
|
||||||
extern crate substrate_primitives;
|
extern crate substrate_primitives;
|
||||||
|
extern crate rand;
|
||||||
|
|
||||||
|
use rand::{OsRng, Rng};
|
||||||
use std::env::args;
|
use std::env::args;
|
||||||
use ed25519::Pair;
|
use ed25519::Pair;
|
||||||
use substrate_primitives::hexdisplay::HexDisplay;
|
use substrate_primitives::hexdisplay::HexDisplay;
|
||||||
@@ -14,6 +16,16 @@ fn good_waypoint(done: u64) -> u64 {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn next_seed(mut seed: [u8; 32]) -> [u8; 32] {
|
||||||
|
for i in 0..32 {
|
||||||
|
match seed[i] {
|
||||||
|
255 => { seed[i] = 0; }
|
||||||
|
_ => { seed[i] += 1; break; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return seed;
|
||||||
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
if args().len() != 2 {
|
if args().len() != 2 {
|
||||||
println!("Usage: subkey <search string>");
|
println!("Usage: subkey <search string>");
|
||||||
@@ -32,9 +44,14 @@ fn main() {
|
|||||||
};
|
};
|
||||||
let top = 30 + (desired.len() * 32);
|
let top = 30 + (desired.len() * 32);
|
||||||
let mut best = 0;
|
let mut best = 0;
|
||||||
let mut seed = Pair::generate().public().0;
|
let mut seed = [0u8; 32];
|
||||||
let mut done = 0;
|
let mut done = 0;
|
||||||
loop {
|
loop {
|
||||||
|
// reset to a new random seed at beginning and regularly after for paranoia.
|
||||||
|
if done % 100000 == 0 {
|
||||||
|
OsRng::new().unwrap().fill_bytes(&mut seed[..]);
|
||||||
|
}
|
||||||
|
|
||||||
let p = Pair::from_seed(&seed);
|
let p = Pair::from_seed(&seed);
|
||||||
let ss58 = p.public().to_ss58check();
|
let ss58 = p.public().to_ss58check();
|
||||||
let s = score(&ss58);
|
let s = score(&ss58);
|
||||||
@@ -45,7 +62,7 @@ fn main() {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
seed = p.public().0;
|
seed = next_seed(seed);
|
||||||
done += 1;
|
done += 1;
|
||||||
|
|
||||||
if done % good_waypoint(done) == 0 {
|
if done % good_waypoint(done) == 0 {
|
||||||
|
|||||||
Reference in New Issue
Block a user