Git Product home page Git Product logo

nicebit's People

Contributors

hhio618 avatar luxe avatar nickfarrow avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

nicebit's Issues

How do you use incrementing private keys instead of random private keys?

Hi,

This code is very good, however i have a requirement for a project i am working on in which i need to be able to start from the first possible private key to the last.

Using a simple one by one incrementing process
When i use pycoin it allows you to enter numbers from 1 to a very big number
each number than generates the keys in order.

Is it possible to do this with your script.
So i can literally output every possible bitcoin private/public key in order without using any randomness?

I spent a few hours trying to do it, yet i cannot work out how to remove the randomness.

For reference this is the first bitcoin wallet ever used.

1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa

is it possible for your script to output this one first and then the next after that and so on?

Compressed address

I am using createpubkey.h in my personal project and it works great and saved me tons of work i must say, however do you have any plan to support compressed address from compressed public key? the header will then complete in its true sense thank you for the hard work you put into this and saving me from mine.

Implement an argument to generate alphanumeric substitutions of the input words for the vanity search.

Currently niceBit can load words from a file to search for vanity addresses:

$ ./niceBit -f dict
Loading words...
1wew
1hello

It would be great to have a new function alphanum_combinations in nicebit.c to iterate over each word and generate as many possible combinations of the base58 characters, and append these to the word list.

For example append the following words to the word array:

1wew -> 1weW, 1wEw, 1w3w, 1w3W, 1W3w...

Preferably this would involve an argument -C to only make alpha- substitutions between lower and uppercase letters (case insensitivity). As well as a second argument -a to also perform subsitutions like e -> 3 or 1 -> i.

I think this should take one additional function with two lists of possible substitutions and two booleans for -C and -a.

https://github.com/nickfarrow/niceBit/blob/master/niceBit.c#L184

RIMEMD160 is depreciated in OpenSSL 3.0

createPubKey.h:33:5: warning: ‘RIPEMD160’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
   33 |     RIPEMD160(SHA256(s, 65, 0), SHA256_DIGEST_LENGTH, rmd + 1);
      |     ^~~~~~~~~
In file included from createPubKey.h:3:
/usr/include/openssl/ripemd.h:49:38: note: declared here
   49 | OSSL_DEPRECATEDIN_3_0 unsigned char *RIPEMD160(const unsigned char *d, size_t n,
      |

How to use incrementing seckeys instead of random keys

Hi,

This code is very good, however i have a requirement for a project i am working on in which i need to be able to start from the first possible private key to the last.

Using a simple one by one incrementation
When i use pycoin it allows you to enter numbers from 1 to a very big number
each number than generates the keys in order.

Is it possible to do this with your script.
So i can literally output every possible bitcoin private/public key in order without using any randomness?

Pattern in generated bitcoin public addresses

The vanity addresses which I find almost always have the consecutive digits at the end of the address.

Frequently get
1vg594yGSQ2ykTYayQqGEjUG3ZSXwEd4444 (4444 at end)
not many
14qpHcSkdB7777PGS8Dnj26iQyTD9NBSDxx. (7777 in middle)

I doubt this is a feature of RIPMED160/SHA1 ..?

My inclination is that it is something to do with the way substrings are currently searched for:

/* Comprise compstr of 'len' repeats
 * of digit 'i'
 */
j = 0;
while(j<len) {
        /* Offset digit i by 48
         * as 48 is 0 in ASCII*/
        compstr[j] = i + 48;
        j++;
}

/* End string with null char*/
compstr[j] = '\0';

/* Check if string in pubaddress */
if(strstr(pubaddress, compstr) != NULL) {
        printf("Found : %s\n", compstr);
        return 1;
}

Otherwise, it could be a bug in the public address creation code, or something completely else.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.