https://github.com/cardinal-run/fingerprint
A package for creating fingerprints of any environment.
https://github.com/cardinal-run/fingerprint
dart detection fingerprint fingerprinting flutter identification
Last synced: about 1 year ago
JSON representation
A package for creating fingerprints of any environment.
- Host: GitHub
- URL: https://github.com/cardinal-run/fingerprint
- Owner: cardinal-run
- License: mit
- Created: 2024-11-11T09:55:58.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-26T19:29:16.000Z (over 1 year ago)
- Last Synced: 2025-03-26T20:27:30.039Z (over 1 year ago)
- Topics: dart, detection, fingerprint, fingerprinting, flutter, identification
- Language: Dart
- Homepage:
- Size: 19.5 KB
- Stars: 27
- Watchers: 0
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# fingerprint
[](https://github.com/cardinal-run/fingerprint/actions/workflows/main.yaml)
[](https://github.com/cardinal-run/fingerprint/actions/workflows/main.yaml)
[](https://pub.dev/packages/fingerprint)
[](https://opensource.org/licenses/MIT)
A package for creating fingerprints of any environment.
## ✨ Features
🔧 Automatically platform detection for `flutter`, `web`, and `io`.
🔐 By default the fingerprint is privacy friendly.
🧩 Custom sources can be provided when creating or refining a fingerprint.
## 🧑💻 Example
```dart
import 'package:fingerprint/fingerprint.dart';
void main() async {
final fingerprint = await Fingerprint.create();
// Shows the canonical form of the fingerprint.
print(fingerprint.toCanonicalString());
// Shows the hash that represents the fingerprint.
print(fingerprint);
}
```
## 🎯 Accuracy
Percentage of accuracy for any given fingerprint can not be guaranteed and you should always perform
your own tests for the environment you want to use the fingerprints in.
We highly recommend refining the fingerprint with your own sources to ensure a higher accuracy:
```dart
import 'package:fingerprint/fingerprint.dart';
void main() async {
final fingerprint = await Fingerprint.create();
final myRefinedFingerprint = await fingerprint.refine({
'my_custom_source': () => SourceResult.value('my_custom_value'),
...
});
}
```
## 🔒 Security
Any fingerprint that is created within client-space (browsers, apps or other environments where data
cant be trusted) should be considered insecure. They are easily spoofed and their implementation can
be reversed engineered.