Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/checksumdev/uniqueid
Generates a unique hash/identifier for a system given a set of parameters.
https://github.com/checksumdev/uniqueid
authentication crypto cryptography data-structures generator hardware hwid library os rust rust-crate rust-lang rust-library utility
Last synced: about 23 hours ago
JSON representation
Generates a unique hash/identifier for a system given a set of parameters.
- Host: GitHub
- URL: https://github.com/checksumdev/uniqueid
- Owner: ChecksumDev
- License: gpl-3.0
- Created: 2022-05-09T00:17:35.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-02-20T23:06:24.000Z (over 1 year ago)
- Last Synced: 2024-10-31T12:08:43.773Z (16 days ago)
- Topics: authentication, crypto, cryptography, data-structures, generator, hardware, hwid, library, os, rust, rust-crate, rust-lang, rust-library, utility
- Language: Rust
- Homepage: https://docs.rs/uniqueid
- Size: 57.6 KB
- Stars: 5
- Watchers: 1
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# uniqueid 🔍
Generates a unique hash/identifier for a system given a set of parameters.
## Example usage
```rust
use uniqueid::{IdentifierBuilder, IdentifierType};let mut builder = IdentifierBuilder::default();
builder.name("test");
builder.add(IdentifierType::CPU);
builder.add(IdentifierType::RAM);
builder.add(IdentifierType::DISK);let identifier = builder.build();
println!("{}", identifier.to_string(false)); // false = do not hash the identifier (useful for debugging)
```___
## Specification
```text
UniqueID uses its own specification.The spec consists of three parts:
- The Identifier; []
- The IdentifierType; ()
- The IdentifierTypeData; (a=b, ...)
A basic identifier would look like this:NAME[TYPE(a=b, ...), ...]
NAME - Optional name of the identifier. (Can be used as a label or salt)
TYPE - The type of identifier, e.g. CPU, GPU, etc.
DATA - The data for the identifier, e.g. Vendor=Intel, Model=Xeon E5-2670This is a very basic example of an identifier, and most use cases will have more types, more data, and hash the output.
```## Roadmap
- [X] Calculate the HWID **based on the system's hardware** in the library without needing to specify it manually.
- [ ] Add support for other identifier types. (currently only supports CPU, RAM, and DISK) - **PR's welcome**!
- [ ] Add disk serial checking.
- [ ] Add support for other hashing algorithms. (currently only supports SHA3-512)## License
This software is licensed under the GNU General Public License v3.0
For more information, see the [LICENSE](LICENSE) file in the root directory of this project or [see here](https://www.gnu.org/licenses/gpl-3.0.html).