System.Hash.THashSHA2

提供: RAD Studio API Documentation
移動先: 案内検索

Delphi

THashSHA2 = record

C++

struct DECLSPEC_DRECORD THashSHA2
{
public:
    enum DECLSPEC_DENUM TSHA2Version : unsigned char { SHA224, SHA256, SHA384, SHA512, SHA512_224, SHA512_256 };
private:
    static const System::Int8 CBuffer32Length = System::Int8(0x40);
    static const System::Byte CBuffer64Length = System::Byte(0x80);
    System::StaticArray<System::Byte, 128> FBuffer;
    unsigned __int64 FBitLength;
    unsigned FIndex;
    bool FFinalized;
    void __fastcall Initialize(TSHA2Version AVersion);
    void __fastcall CheckFinalized();
    void __fastcall Compress();
    void __fastcall Compress32();
    void __fastcall Compress64();
    void __fastcall Finalize();
    void __fastcall Finalize32();
    void __fastcall Finalize64();
#ifndef _WIN64
    System::DynamicArray<System::Byte> __fastcall GetDigest();
#else /* _WIN64 */
    System::TArray__1<System::Byte> __fastcall GetDigest();
#endif /* _WIN64 */
    void __fastcall Update(const System::PByte AData, unsigned ALength)/* overload */;
public:
    static THashSHA2 __fastcall Create(TSHA2Version AHashVersion = (TSHA2Version)(0x1));
    void __fastcall Reset();
    void __fastcall Update(const void *AData, unsigned ALength)/* overload */;
#ifndef _WIN64
    void __fastcall Update(const System::DynamicArray<System::Byte> AData, unsigned ALength = (unsigned)(0x0))/* overload */;
#else /* _WIN64 */
    void __fastcall Update(const System::TArray__1<System::Byte> AData, unsigned ALength = (unsigned)(0x0))/* overload */;
#endif /* _WIN64 */
    void __fastcall Update(const System::UnicodeString Input)/* overload */;
    int __fastcall GetBlockSize();
    int __fastcall GetHashSize();
#ifndef _WIN64
    System::DynamicArray<System::Byte> __fastcall HashAsBytes();
#else /* _WIN64 */
    System::TArray__1<System::Byte> __fastcall HashAsBytes();
#endif /* _WIN64 */
    System::UnicodeString __fastcall HashAsString();
#ifndef _WIN64
    static System::DynamicArray<System::Byte> __fastcall GetHashBytes(const System::UnicodeString AData, TSHA2Version AHashVersion = (TSHA2Version)(0x1))/* overload */;
#else /* _WIN64 */
    static System::TArray__1<System::Byte> __fastcall GetHashBytes(const System::UnicodeString AData, TSHA2Version AHashVersion = (TSHA2Version)(0x1))/* overload */;
#endif /* _WIN64 */
    static System::UnicodeString __fastcall GetHashString(const System::UnicodeString AString, TSHA2Version AHashVersion = (TSHA2Version)(0x1))/* overload */;
#ifndef _WIN64
    static System::DynamicArray<System::Byte> __fastcall GetHashBytes(System::Classes::TStream* const AStream, TSHA2Version AHashVersion = (TSHA2Version)(0x1))/* overload */;
#else /* _WIN64 */
    static System::TArray__1<System::Byte> __fastcall GetHashBytes(System::Classes::TStream* const AStream, TSHA2Version AHashVersion = (TSHA2Version)(0x1))/* overload */;
#endif /* _WIN64 */
    static System::UnicodeString __fastcall GetHashString(System::Classes::TStream* const AStream, TSHA2Version AHashVersion = (TSHA2Version)(0x1))/* overload */;
#ifndef _WIN64
    static System::DynamicArray<System::Byte> __fastcall GetHashBytesFromFile(const System::Sysutils::TFileName AFileName, TSHA2Version AHashVersion = (TSHA2Version)(0x1));
#else /* _WIN64 */
    static System::TArray__1<System::Byte> __fastcall GetHashBytesFromFile(const System::Sysutils::TFileName AFileName, TSHA2Version AHashVersion = (TSHA2Version)(0x1));
#endif /* _WIN64 */
    static System::UnicodeString __fastcall GetHashStringFromFile(const System::Sysutils::TFileName AFileName, TSHA2Version AHashVersion = (TSHA2Version)(0x1));
    static System::UnicodeString __fastcall GetHMAC(const System::UnicodeString AData, const System::UnicodeString AKey, TSHA2Version AHashVersion = (TSHA2Version)(0x1));
#ifndef _WIN64
    static System::DynamicArray<System::Byte> __fastcall GetHMACAsBytes(const System::UnicodeString AData, const System::UnicodeString AKey, TSHA2Version AHashVersion = (TSHA2Version)(0x1))/* overload */;
    static System::DynamicArray<System::Byte> __fastcall GetHMACAsBytes(const System::UnicodeString AData, const System::DynamicArray<System::Byte> AKey, TSHA2Version AHashVersion = (TSHA2Version)(0x1))/* overload */;
    static System::DynamicArray<System::Byte> __fastcall GetHMACAsBytes(const System::DynamicArray<System::Byte> AData, const System::UnicodeString AKey, TSHA2Version AHashVersion = (TSHA2Version)(0x1))/* overload */;
    static System::DynamicArray<System::Byte> __fastcall GetHMACAsBytes(const System::DynamicArray<System::Byte> AData, const System::DynamicArray<System::Byte> AKey, TSHA2Version AHashVersion = (TSHA2Version)(0x1))/* overload */;
#else /* _WIN64 */
    static System::TArray__1<System::Byte> __fastcall GetHMACAsBytes(const System::UnicodeString AData, const System::UnicodeString AKey, TSHA2Version AHashVersion = (TSHA2Version)(0x1))/* overload */;
    static System::TArray__1<System::Byte> __fastcall GetHMACAsBytes(const System::UnicodeString AData, const System::TArray__1<System::Byte> AKey, TSHA2Version AHashVersion = (TSHA2Version)(0x1))/* overload */;
    static System::TArray__1<System::Byte> __fastcall GetHMACAsBytes(const System::TArray__1<System::Byte> AData, const System::UnicodeString AKey, TSHA2Version AHashVersion = (TSHA2Version)(0x1))/* overload */;
    static System::TArray__1<System::Byte> __fastcall GetHMACAsBytes(const System::TArray__1<System::Byte> AData, const System::TArray__1<System::Byte> AKey, TSHA2Version AHashVersion = (TSHA2Version)(0x1))/* overload */;
#endif /* _WIN64 */
private:
    TSHA2Version FVersion;
    union
    {
        struct
        {
            System::StaticArray<unsigned __int64, 8> FHash64;
        };
        struct
        {
            System::StaticArray<unsigned, 8> FHash;
        };
    };
};

プロパティ

種類 可視性 ソース ユニット
record
struct
public
System.Hash.pas
System.Hash.hpp
System.Hash System.Hash


説明

SHA-2 ハッシュを実装するレコードです。

THashSHA2 には、以下のようなメソッドが用意されています。

  • Update: 渡されたデータを使ってハッシュ値を更新します。
  • GetHashString: 渡された文字列のハッシュ値を返します。
  • GetHashStringFromFile: 提供されたファイルのハッシュ値を返します。
  • GetHMAC: HMAC 認証(ハッシュベース メッセージ認証符号)に関連付けられた文字列表現を返します。

関連項目