Wtyczka HashInfo dla NSIS dostarcza kilku kryptograficznych funkcji, które pozwalają na wygenerowanie wartości funkcji skrótu dla danego ciągu znaków lub pliku. Twórca instalatora (bazującego na NSIS) może skorzystać z jednego z wielu algorytmów funkcji skrótu.
Bieżąca wersja wtyczki pozwala na pobranie informacji dla kilku kategorii. Poniżej znajdziesz wszystkie funkcje obsługiwane przez wtyczkę wraz z opisem i przykładowym zastosowaniem. Więcej informacji o wtyczce HashInfo możesz znaleźć w pliku "HashInfoDemo.nsi", który dołączony jest do pliku archiwum wtyczki.
Wtyczka bazuje na bibliotece HashLib4Pascal, która zapewnia łatwy w użyciu interfejs do obliczania skrótów i sum kontrolnych.
Function .onInit HashInfo::NazwaFunkcji "PARAMETR1" "PARAMETR2" ; Funkcja może przyjmować parametry ; Parametry i sposób ich użycia zależą od danej funkcji (wymagane są zawsze) Pop $0 ; Funkcja zwraca pobieraną wartość w zmiennej $0 ; Funkcja zwraca "error", jeśli wystapi jakiś błąd FunctionEnd
Suma kontrolna to niewielki blok danych uzyskany z innego bloku danych cyfrowych w celu wykrycia błędów, które mogły zostać wprowadzone podczas jego przesyłania lub przechowywania. Same sumy kontrolne są często używane do weryfikacji integralności danych, ale nie są wykorzystywane do weryfikacji autentyczności danych.
Dostępne Algorytmy Funkcji Skrótu: Adler-32
1a. Oblicz wartość sumy kontrolnej dla danego CIĄGU ZNAKÓW ; Sposób Użycia ; HashInfo::NazwaFunkcji "PARAMETR1" "PARAMETR2" ; PARAMETR1 -> Algorytm Funkcji Skrótu (Wymagany) ; PARAMETR2 -> Ciąg Znaków (Wymagany) ; Uwagi: ; - Funkcja zwraca "error" w przypadku wystąpienia błędów StrCpy $R0 "Adler-32" ; PARAMETR1 StrCpy $R1 "Hello World" ; PARAMETR2 HashInfo::GetStrCRCHash "$R0" "$R1" Pop $0 DetailPrint " Algorytm Funkcji Skrótu: $R0" DetailPrint " Wejściowy Ciąg Znaków: $R1" DetailPrint " Wyjściowa wartość Funkcji Skrótu: $0"
1b. Oblicz wartość sumy kontrolnej dla danego PLIKU ; Sposób Użycia ; HashInfo::NazwaFunkcji "PARAMETR1" "PARAMETR2" ; PARAMETR1 -> Algorytm Funkcji Skrótu (Wymagany) ; PARAMETR2 -> Pełna ścieżka dostępu do pliku (Wymagane) ; Uwagi: ; - Funkcja zwraca "error" w przypadku wystąpienia błędów StrCpy $R0 "Adler-32" ; PARAMETR1 StrCpy $R1 "$EXEPATH" ; PARAMETR2 HashInfo::GetFileCRCHash "$R0" "$R1" Pop $0 DetailPrint " Algorytm Funkcji Skrótu: $R0" DetailPrint " Plik wejściowy: $R1" DetailPrint " Wyjściowa wartość Funkcji Skrótu: $0"
Cykliczna kontrola nadmiarowa (CRC) to kod wykrywania błędów powszechnie stosowany w sieciach cyfrowych i urządzeniach pamięci masowej do wykrywania przypadkowych zmian danych cyfrowych. Bloki danych wprowadzane do tych systemów otrzymują dołączoną krótką wartość kontrolną, opartą na pozostałej części wielomianowego podziału ich zawartości. Podczas pobierania obliczenia są powtarzane, a w przypadku, gdy wartości kontrolne nie są zgodne, można podjąć działania naprawcze przeciwko uszkodzeniu danych. CRC mogą być używane do korekcji błędów. CRC są tak nazywane, ponieważ wartość sprawdzania (weryfikacji danych) jest redundancją (rozszerza wiadomość bez dodawania informacji), a algorytm opiera się na kodach cyklicznych.
Dostępne Algorytmy Funkcji Skrótu:
CRC-3/GSM, CRC-3/ROHC, CRC-4/INTERLAKEN, CRC-4/ITU, CRC-4/G-704, CRC-5/EPC, CRC-5/EPC-C1G2, CRC-5/ITU, CRC-5/G-704, CRC-5/USB, CRC-6/CDMA2000-A, CRC-6/CDMA2000-B, CRC-6/DARC, CRC-6/GSM, CRC-6/ITU, CRC-6/G-704, CRC-7, CRC-7/MMC, CRC-7/ROHC, CRC-7/UMTS, CRC-8, CRC-8/SMBUS, CRC-8/AUTOSAR, CRC-8/BLUETOOTH, CRC-8/CDMA2000, CRC-8/DARC, CRC-8/DVB-S2, CRC-8/EBU, CRC-8/AES, CRC-8/TECH-3250, CRC-8/GSM-A, CRC-8/GSM-B, CRC-8/I-CODE, CRC-8/ITU, CRC-8/I-432-1, CRC-8/LTE, CRC-8/MAXIM, DOW-CRC, CRC-8/MAXIM-DOW, CRC-8/OPENSAFETY, CRC-8/ROHC, CRC-8/SAE-J1850, CRC-8/WCDMA, CRC-8/MIFARE-MAD, CRC-8/NRSC-5, CRC-10, CRC-10/ATM, CRC-10/I-610, CRC-10/CDMA2000, CRC-10/GSM, CRC-11, CRC-11/FLEXRAY, CRC-11/UMTS, CRC-12/CDMA2000, CRC-12/DECT, X-CRC-12, CRC-12/GSM, CRC-12/UMTS, CRC-12/3GPP, CRC-13/BBC, CRC-14/DARC, CRC-14/GSM, CRC-15, CRC-15/CAN, CRC-15/MPT1327, CRC-16, ARC, CRC-IBM, CRC-16/ARC, CRC-16/LHA, CRC-16/AUG-CCITT, CRC-16/SPI-FUJITSU, CRC-16/BUYPASS, CRC-16/VERIFONE, CRC-16/UMTS, CRC-16/CCITT-FALSE, CRC-16/AUTOSAR, CRC-16/IBM-3740, CRC-16/CDMA2000, CRC-16/CMS, CRC-16/DDS-110, CRC-16/DECT-R, R-CRC-16, CRC-16/DECT-X, X-CRC-16, CRC-16/DNP, CRC-16/EN13757, CRC-16/GENIBUS, CRC-16/EPC, CRC-16/I-CODE, CRC-16/DARC, CRC-16/EPC-C1G2, CRC-16/GSM, CRC-16/LJ1200, CRC-16/MAXIM, CRC-16/MAXIM-DOW, CRC-16/MCRF4XX, CRC-16/OPENSAFETY-A, CRC-16/OPENSAFETY-B, CRC-16/PROFIBUS, CRC-16/IEC-61158-2, CRC-16/RIELLO, CRC-16/T10-DIF, CRC-16/TELEDISK, CRC-16/TMS37157, CRC-16/USB, CRC-A, CRC-16/ISO-IEC-14443-3-A, KERMIT, CRC-16/CCITT, CRC-16/CCITT-TRUE, CRC-CCITT, CRC-16/KERMIT, CRC-16/V-41-LSB, MODBUS, CRC-16/MODBUS, X-25, CRC-16/IBM-SDLC, CRC-16/ISO-HDLC, CRC-16/ISO-IEC-14443-3-B, CRC-B, CRC-16/X-25, XMODEM, ZMODEM, CRC-16/ACORN, CRC-16/XMODEM, CRC-16/V-41-MSB, CRC-16/NRSC-5, CRC-17/CAN-FD, CRC-21/CAN-FD, CRC-24, CRC-24/OPENPGP, CRC-24/BLE, CRC-24/FLEXRAY-A, CRC-24/FLEXRAY-B, CRC-24/INTERLAKEN, CRC-24/LTE-A, CRC-24/LTE-B, CRC-24/OS-9, CRC-30/CDMA, CRC-31/PHILLIPS, CRC-32, CRC-32/ADCCP, CRC-32/V-42, CRC-32/XZ, PKZIP, CRC-32/ISO-HDLC, CRC-32/AUTOSAR, CRC-32/BZIP2, CRC-32/AAL5, CRC-32/DECT-B, B-CRC-32, CRC-32C, CRC-32/BASE91-C, CRC-32/CASTAGNOLI, CRC-32/INTERLAKEN, CRC-32/ISCSI, CRC-32D, CRC-32/BASE91-D, CRC-32/MPEG-2, CRC-32/POSIX, CKSUM, CRC-32Q, CRC-32/AIXM, JAMCRC, CRC-32/JAMCRC, XFER, CRC-32/XFER, CRC-32/CD-ROM-EDC, CRC-40/GSM, CRC-64, CRC-64/ECMA-182, CRC-64/GO-ISO, CRC-64/WE, CRC-64/XZ, CRC-64/GO-ECMA, CRC-64/1B, CRC-64/Jones
1a. Oblicz wartość funkcji skrótu CRC dla danego CIĄGU ZNAKÓW ; Sposób Użycia ; HashInfo::NazwaFunkcji "PARAMETR1" "PARAMETR2" ; PARAMETR1 -> CRC Algorytm Funkcji Skrótu (Wymagany) ; PARAMETR2 -> Ciąg Znaków (Wymagany) ; Uwagi: ; - Funkcja zwraca "error" w przypadku wystąpienia błędów StrCpy $R0 "CRC-32" ; PARAMETR1 StrCpy $R1 "Hello World" ; PARAMETR2 HashInfo::GetStrCRCHash "$R0" "$R1" Pop $0 DetailPrint " Algorytm Funkcji Skrótu: $R0" DetailPrint " Wejściowy Ciąg Znaków: $R1" DetailPrint " Wyjściowa wartość Funkcji Skrótu: $0"
1b. Oblicz wartość funkcji skrótu CRC dla danego PLIKU ; Sposób Użycia ; HashInfo::NazwaFunkcji "PARAMETR1" "PARAMETR2" ; PARAMETR1 -> CRC Algorytm Funkcji Skrótu (Wymagany) ; PARAMETR2 -> Pełna ścieżka dostępu do pliku (Wymagane) ; Uwagi: ; - Funkcja zwraca "error" w przypadku wystąpienia błędów StrCpy $R0 "CRC-32" ; PARAMETR1 StrCpy $R1 "$EXEPATH" ; PARAMETR2 HashInfo::GetFileCRCHash "$R0" "$R1" Pop $0 DetailPrint " Algorytm Funkcji Skrótu: $R0" DetailPrint " Plik wejściowy: $R1" DetailPrint " Wyjściowa wartość Funkcji Skrótu: $0"
Niekryptograficzne funkcje skrótu zapewniają słabsze gwarancje w zamian za poprawę wydajności (nie zapewniają gwarancji bezpieczeństwa). Po prostu starają się unikać kolizji dla niezłośliwych danych wejściowych. Przykładem może być wykrycie uszkodzenia danych z powodu niestabilnej sieci.
Dostępne Algorytmy Funkcji Skrótu:
AP, Bernstein, Bernstein1, BKDR, DEK, DJB, ELF, FNV, FNV1a, Jenkins3, JS, Murmur2, MurmurHash3_x86_32, OneAtTime, PJW, Rotating, RS, SDBM, ShiftAndXor, SuperFast, XXHash32, FNV_64, FNV1a_64, Murmur2_64, SipHash2_4, XXHash64, SipHash128_2_4, MurmurHash3_x86_128, MurmurHash3_x64_128
1a. Oblicz wartość Niekryptograficznej Funkcji Skrótu dla danego CIĄGU ZNAKÓW ; Sposób Użycia ; HashInfo::NazwaFunkcji "PARAMETR1" "PARAMETR2" ; PARAMETR1 -> Algorytm Funkcji Skrótu (Wymagany) ; PARAMETR2 -> Ciąg Znaków (Wymagany) ; Uwagi: ; - Funkcja zwraca "error" w przypadku wystąpienia błędów StrCpy $R0 "Bernstein" ; PARAMETR1 StrCpy $R1 "Hello World" ; PARAMETR2 HashInfo::GetStrNonCryptoHash "$R0" "$R1" Pop $0 DetailPrint " Algorytm Funkcji Skrótu: $R0" DetailPrint " Wejściowy Ciąg Znaków: $R1" DetailPrint " Wyjściowa wartość Funkcji Skrótu: $0"
1b. Oblicz wartość Niekryptograficznej Funkcji Skrótu dla danego PLIKU ; Sposób Użycia ; HashInfo::NazwaFunkcji "PARAMETR1" "PARAMETR2" ; PARAMETR1 -> Algorytm Funkcji Skrótu (Wymagany) ; PARAMETR2 -> Pełna ścieżka dostępu do pliku (Wymagane) ; Uwagi: ; - Funkcja zwraca "error" w przypadku wystąpienia błędów StrCpy $R0 "Bernstein" ; PARAMETR1 StrCpy $R1 "$EXEPATH" ; PARAMETR2 HashInfo::GetFileNonCryptoHash "$R0" "$R1" Pop $0 DetailPrint " Algorytm Funkcji Skrótu: $R0" DetailPrint " Plik wejściowy: $R1" DetailPrint " Wyjściowa wartość Funkcji Skrótu: $0"
Kryptograficzne funkcje skrótu są specjalną klasą wśród funkcji skrótu, które mają na celu zapewnienie gwarancji bezpieczeństwa. Na przykład podczas uzyskiwania odcisku palca urządzenia należy użyć funkcji skrótu kryptograficznego, aby mieć więcej gwarancji co do unikalności jego wyjścia. Idealna funkcja skrótu kryptograficznego ma sześć głównych właściwości:
Dostępne Algorytmy Funkcji Skrótu:
MD2, MD4, MD5, SHA0, SHA1, SHA2-224, SHA2-256, SHA2-384, SHA2-512, SHA2-512/224, SHA2-512/256, SHA3-224, SHA3-256, SHA3-384, SHA3-512, Blake2B-160, Blake2B-256, Blake2B-384, Blake2B-512, Blake2BP, Blake2S-128, Blake2S-160, Blake2S-224, Blake2S-256, Blake2SP, Blake3, GOST 34.11-94, GOST R 34.11-2012-256, GOST R 34.11-2012-512, Grindahl-256, Grindahl-512, Has160, RIPEMD, RIPEMD-128, RIPEMD-160, RIPEMD-256, RIPEMD-320, Snefru-128, Snefru-256, Panama, RadioGatun32, RadioGatun64, Keccak-224, Keccak-256, Keccak-288, Keccak-384, Keccak-512, WhirlPool
1a. Oblicz wartość Kryptograficznej Funkcji Skrótu dla danego CIĄGU ZNAKÓW ; Sposób Użycia ; HashInfo::NazwaFunkcji "PARAMETR1" "PARAMETR2" ; PARAMETR1 -> Algorytm Funkcji Skrótu (Wymagany) ; PARAMETR2 -> Ciąg Znaków (Wymagany) ; Uwagi: ; - Funkcja zwraca "error" w przypadku wystąpienia błędów StrCpy $R0 "MD5" ; PARAMETR1 StrCpy $R1 "Hello World" ; PARAMETR2 HashInfo::GetStrCryptoHash "$R0" "$R1" Pop $0 DetailPrint " Algorytm Funkcji Skrótu: $R0" DetailPrint " Wejściowy Ciąg Znaków: $R1" DetailPrint " Wyjściowa wartość Funkcji Skrótu: $0"
1b. Oblicz wartość Kryptograficznej Funkcji Skrótu dla danego PLIKU ; Sposób Użycia ; HashInfo::NazwaFunkcji "PARAMETR1" "PARAMETR2" ; PARAMETR1 -> Algorytm Funkcji Skrótu (Wymagany) ; PARAMETR2 -> Pełna ścieżka dostępu do pliku (Wymagane) ; Uwagi: ; - Funkcja zwraca "error" w przypadku wystąpienia błędów StrCpy $R0 "MD5" ; PARAMETR1 StrCpy $R1 "$EXEPATH" ; PARAMETR2 HashInfo::GetFileCryptoHash "$R0" "$R1" Pop $0 DetailPrint " Algorytm Funkcji Skrótu: $R0" DetailPrint " Plik wejściowy: $R1" DetailPrint " Wyjściowa wartość Funkcji Skrótu: $0"
Data wydania: | 4 listopada 2022 (Pobrano: 322 razy) |
Wersja: | 2.0.0.0 |
Architektura: | Windows (NSIS 32/64-Bit Unicode) |
Licencja: | Freeware |
Prawa autorskie: | Copyright © 2016 - 2024 Paweł Porwisz |
Rozmiar pliku: | 1,10 MB (1161145 bajtów) |
Hash (SHA256): | 6d0413a4269db52fef7b20fcf66590618b4536090bdddbcbd588490559ae7a5d |
Wtyczka HashInfo dla NSIS
Copyright © 2016 - 2024 Paweł Porwisz
Wszystkie prawa zastrzeżone
INSTALACJA LUB UŻYWANIE TEGO OPROGRAMOWANIA OZNACZA WYRAŻENIE ZGODY NA PONIŻSZĄ UMOWĘ LICENCYJNĄ.
OPROGRAMOWANIE JEST UDOSTĘPNIANE "W STANIE, W JAKIM SIĘ ZNAJDUJE", BEZ JAKIEJKOLWIEK GWARANCJI WYRAŹNEJ LUB DOROZUMIANEJ, W TYM BEZ GWARANCJI PRZYDATNOŚCI HANDLOWEJ, PRZYDATNOŚCI DO OKREŚLONEGO CELU ORAZ NIENARUSZALNOŚCI PRAW STRONY TRZECIEJ. WŁAŚCICIELE PRAW AUTORSKICH OKREŚLENI W NINIEJSZEJ INFORMACJI O UPRAWNIENIACH NIE SĄ W ŻADNYM WYPADKU ODPOWIEDZIALNI ZA JAKIEKOLWIEK ROSZCZENIA ANI ZA JAKIEKOLWIEK SZKODY SZCZEGÓLNE, POŚREDNIE LUB WTÓRNE, ANI ŻADNE INNE SZKODY WYNIKAJĄCE Z UTRATY MOŻLIWOŚCI UŻYTKOWANIA, UTRATY DANYCH LUB ZYSKÓW, BEZ WZGLĘDU NA TO, CZY PODSTAWĄ ROSZCZENIA SĄ WARUNKI UMOWY, ZANIEDBANIE LUB ODPOWIEDZIALNOŚĆ DELIKTOWA, POWSTAŁA W WYNIKU UŻYTKOWANIA TEGO OPROGRAMOWANIA LUB W ZWIĄZKU Z JEGO DZIAŁANIEM.