Pure Dart Argon2 algorithm (the winner of the Password Hash Competition 2015) for all Dart platforms (JS/Web, Flutter, VM/Native).
Based on the results of:
Converted to Dart from:
import 'dart:typed_data';
import 'package:argon2/argon2.dart';
void main() {
var password = 'pass123456';
var salt = 'somesalt'.toBytesLatin1();
var parameters = Argon2Parameters(
Argon2Parameters.ARGON2_i,
salt,
version: Argon2Parameters.ARGON2_VERSION_10,
iterations: 2,
memoryPowerOf2: 16,
);
print('Parameters: $parameters');
var argon2 = Argon2BytesGenerator();
argon2.init(parameters);
var passwordBytes = parameters.converter.convert(password);
print('Generating key from password...');
var result = Uint8List(32);
argon2.generateBytes(passwordBytes, result, 0, result.length);
var resultHex = result.toHexString();
print('Result: $resultHex');
}
Output:
Parameters: Argon2Parameters{ type: 1, iterations: 2, memory: 65536, lanes: 1, version: 16, converter: UTF8 }
Generating key from password...
Result: 297f7d074e07aaa46316ea006c1440dfe5707746426ec1df6c1d303ab5fd5533
The official source code is hosted @ GitHub:
Please file feature requests and bugs at the issue tracker.
Any help from the open-source community is always welcome and needed:
- Found an issue?
- Please fill a bug report with details.
- Wish a feature?
- Open a feature request with use cases.
- Are you using and liking the project?
- Promote the project: create an article, do a post or make a donation.
- Are you a developer?
- Fix a bug and send a pull request.
- Implement a new feature.
- Improve the Unit Tests.
- Have you already helped in any way?
- Many thanks from me, the contributors and everybody that uses this project!
Graciliano M. Passos: gmpassos@GitHub.
Please, provide a reference to this project and the author for any derivative work.