lib-hash
v0.0.2
Published
Simple js/node.js library for generate hash
Downloads
5
Maintainers
Readme
Простая работа с методами хеширования.
Библиотка javascript/typescript (ES6) для node.js.
- работает на сервере и в браузере,
- aes,
- base64,
- bcrypt,
- hmac,
- md5,
- sha.
Библиотека написана для простой и быстрой работы. Все эти операции есть в виде нативных методов и отдельных библиотек. Но мы постарались сделать методы наиболее быстрыми и удобными.
Установка
npm install lib-hashили
yarn add lib-hashНачало работы
Можно импортировать методы как отдельные функции:
import { md5 } from 'lib-hash';
md5('some string');или вызывать их как статические методы объекта:
import * as hash from 'lib-hash';
hash.md5('some string');Список методов
Все методы хеширования поддерживают конвертацию значений в строку.
aes.encode(data: any, secret: string): string
Кодирование методом AES.
aes.decode(data: string, secret: string): string
Декодирование методом AES.
base64.encode(data: any, secret = ''): string
Кодирование методом BASE64.
Второй аргумент secret необязательный. По-умолчанию не задан. Если в нем указать строку, то она будет добавлена к хешируемым данным в качестве соли.
base64.decode(data: any): string
Декодирование методом BASE64.
Второй аргумент secret необязательный. По-умолчанию не задан. Если в нем указать строку, то она будет добавлена к хешируемым данным в качестве соли.
bcrypt.hash(data: any, saltRounds = 10): string
Хэширование методом BCRYPT.
Второй аргумент saltRounds необязательный. Задает количество циклов генерации. Влияет на надежность. По-умолчанию 10.
bcrypt.verify(data: any, hash: string): boolean
Сравнивает переданные данные с хэшем.
Первый аргумент data - данные.
Второй аргумент hash - хэш.
Возвращает true или false.
Если данные или хэш были передаными пустыми, всегда вернет false.
md5(data: any): string
Хэширование методом MD5.
Второй аргумент secret необязательный. По-умолчанию не задан. Если в нем указать строку, то она будет добавлена к хешируемым данным в качестве соли.
ripemd160(data: any): string
Хэширование методом RIPEMD-160.
sha1(data: any): string
Хэширование методом SHA-1.
Второй аргумент secret необязательный. По-умолчанию не задан. Если в нем указать строку, то она будет добавлена к хешируемым данным в качестве соли.
sha224(data: any): string
Хэширование методом SHA2-224.
Второй аргумент secret необязательный. По-умолчанию не задан. Если в нем указать строку, то она будет добавлена к хешируемым данным в качестве соли.
sha256(data: any): string
Хэширование методом SHA2-256.
Второй аргумент secret необязательный. По-умолчанию не задан. Если в нем указать строку, то она будет добавлена к хешируемым данным в качестве соли.
sha384(data: any): string
Хэширование методом SHA2-384.
Второй аргумент secret необязательный. По-умолчанию не задан. Если в нем указать строку, то она будет добавлена к хешируемым данным в качестве соли.
sha512(data: any): string
Хэширование методом SHA2-512.
Второй аргумент secret необязательный. По-умолчанию не задан. Если в нем указать строку, то она будет добавлена к хешируемым данным в качестве соли.
Обработка ошибок
Все вызовы возвращают ошибки как есть, без дополнительных перехватов и обработки. Поэтому оборачиваем в try/catch самостоятельно.
async function customHash(data) {
try {
const hashed = md5(data);
return { hashed };
} catch (error) {
return { error };
}
}Лицензия
Лицензия MIT, 2025
Для работы использованы следующие библиотеки.
bcryptjs
Версия 3.0.2 и выше. Под лицензией BSD-3-Clause. Ссылка: https://github.com/dcodeIO/bcrypt.js Лицензия: https://github.com/dcodeIO/bcrypt.js?tab=License-1-ov-file#readme
crypto-js
Версия 4.2.0 и выше. Под лицензией MIT. Ссылка: https://github.com/brix/crypto-js Лицензия: https://github.com/brix/crypto-js?tab=License-1-ov-file#readme
