From 422b6eb05a2fb5e7eec816a6bd2d37b53e4a6bdc Mon Sep 17 00:00:00 2001 From: Corentin THOMASSET Date: Wed, 3 Aug 2022 17:16:03 +0200 Subject: [PATCH] feat(hash-text): digest base selector (#254) --- src/tools/hash-text/hash-text.service.test.ts | 15 ++++++ src/tools/hash-text/hash-text.service.ts | 7 +++ src/tools/hash-text/hash-text.vue | 47 ++++++++++++++++--- 3 files changed, 62 insertions(+), 7 deletions(-) create mode 100644 src/tools/hash-text/hash-text.service.test.ts create mode 100644 src/tools/hash-text/hash-text.service.ts diff --git a/src/tools/hash-text/hash-text.service.test.ts b/src/tools/hash-text/hash-text.service.test.ts new file mode 100644 index 00000000..b0e9c797 --- /dev/null +++ b/src/tools/hash-text/hash-text.service.test.ts @@ -0,0 +1,15 @@ +import { describe, expect, it } from 'vitest'; +import { convertHexToBin } from './hash-text.service'; + +describe('hash text', () => { + describe('convertHexToBin', () => { + it('convert hex to bin', () => { + expect(convertHexToBin('')).toEqual(''); + expect(convertHexToBin('FF')).toEqual('11111111'); + expect(convertHexToBin('F'.repeat(200))).toEqual('1111'.repeat(200)); + expect(convertHexToBin('2123006AD00F694CE120')).toEqual( + '00100001001000110000000001101010110100000000111101101001010011001110000100100000', + ); + }); + }); +}); diff --git a/src/tools/hash-text/hash-text.service.ts b/src/tools/hash-text/hash-text.service.ts new file mode 100644 index 00000000..f1241d1d --- /dev/null +++ b/src/tools/hash-text/hash-text.service.ts @@ -0,0 +1,7 @@ +export function convertHexToBin(hex: string) { + return hex + .trim() + .split('') + .map((byte) => parseInt(byte, 16).toString(2).padStart(4, '0')) + .join(''); +} diff --git a/src/tools/hash-text/hash-text.vue b/src/tools/hash-text/hash-text.vue index 9d9332fb..4b7bcf19 100644 --- a/src/tools/hash-text/hash-text.vue +++ b/src/tools/hash-text/hash-text.vue @@ -1,10 +1,34 @@