import 'dart:math'; import 'dart:typed_data'; import 'package:argon2/argon2.dart'; import 'dart:io'; import 'package:postgres/postgres.dart'; String username = 'admin'; String password = 'password'; var r = Random.secure(); String randomSalt = String.fromCharCodes(List.generate(32, (index) => r.nextInt(33) + 89)); final salt = randomSalt.toBytesLatin1(); var parameters = Argon2Parameters( Argon2Parameters.ARGON2_i, salt, version: Argon2Parameters.ARGON2_VERSION_10, iterations: 2, memoryPowerOf2: 16, ); final postgres = PostgreSQLConnection( Platform.environment['JOBLINK_POSTGRES_ADDRESS']!, int.parse(Platform.environment['JOBLINK_POSTGRES_PORT']!), 'fbla', username: Platform.environment['JOBLINK_POSTGRES_USERNAME'], password: Platform.environment['JOBLINK_POSTGRES_PASSWORD'], ); Future main() async { await postgres.open(); var argon2 = Argon2BytesGenerator(); argon2.init(parameters); var passwordBytes = parameters.converter.convert(password); var result = Uint8List(32); argon2.generateBytes(passwordBytes, result); var resultHex = result.toHexString(); postgres.query( ''' INSERT INTO public.users (username, password_hash, salt) VALUES ('$username', '$resultHex', '$randomSalt') ''' ); }