twonly-app-dependencies/hashlib/lib/src/ripemd160.dart
2025-12-07 16:10:41 +01:00

38 lines
1.2 KiB
Dart

// Copyright (c) 2023, Sudipto Chandra
// All rights reserved. Check LICENSE file for details.
import 'dart:convert';
import 'package:hashlib/src/algorithms/ripemd/ripemd160.dart';
import 'package:hashlib/src/core/block_hash.dart';
/// RIPEMD-160 (RACE Integrity Primitives Evaluation Message Digest) is a
/// cryptographic hash function that produces a fixed-size, 160-bit hash value.
/// It is used to verify the integrity and authenticity of messages and is
/// resistant to various types of attacks, including collisions and preimage
/// attacks. It is commonly used in security protocols and applications.
const BlockHashBase ripemd160 = _RIPEMD160();
class _RIPEMD160 extends BlockHashBase {
const _RIPEMD160();
@override
final String name = 'RIPEMD-160';
@override
RIPEMD160Hash createSink() => RIPEMD160Hash();
}
/// Generates a RIPEMD-160 hash in hexadecimal
///
/// Parameters:
/// - [input] is the message string
/// - [encoding] specifies the character encoding. Default is [utf8].
/// - [uppercase] flag indicates whether the output should be in uppercase.
String ripemd160sum(
String input, [
Encoding? encoding,
bool uppercase = false,
]) {
return ripemd160.string(input, encoding).hex(uppercase);
}