*******************************************
        ECB
*******************************************

Output:
C3 52 80 57 54 23 7F 31 1A C0 FF F4 E3 E0 3E 78 // @CT_PART1
BD 86 2F FB 97 AD 2F B8 F8 B8 91 F6 03 2F 36 CB // @CT_PART2
C1 A7 AB A1 A2 3A 94 06 58 07 A0 8C C8 EE D0 6E	// @CT_PART3

    $BinaryToHexString(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(NULL), 
        ECB, NONE, 
        $BinaryData(0x
	    01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
	    02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
	    03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03), 
        $BinaryData(NULL),
        ENCRYPT)->b, U);

Output:
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 // @PT_PART1
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 // @PT_PART2
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 // @PT_PART3

    $BinaryToHexString(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(NULL), 
        ECB, NONE, 
        $BinaryData(0x
            C3 52 80 57 54 23 7F 31 1A C0 FF F4 E3 E0 3E 78 
            BD 86 2F FB 97 AD 2F B8 F8 B8 91 F6 03 2F 36 CB 
            C1 A7 AB A1 A2 3A 94 06 58 07 A0 8C C8 EE D0 6E), 
        $BinaryData(NULL),
        DECRYPT)->b, U);
*******************************************
        CBC
*******************************************

Output:
C7 BB B8 A0 57 3D 5D C4 6E 4C 58 F9 05 EA 41 8F // @CT_PART1
CE 8F F7 C2 67 4C B7 DC 83 35 6B 77 4B 64 08 DD // @CT_PART2
0B DE 22 F4 3C AA A9 8D 83 E5 A9 36 22 4E 2C 8E // @CT_PART3

    $BinaryToHexString(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(0x0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00), 
        CBC, NONE, 
        $BinaryData(0x
	    01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
	    02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
	    03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03), 
        $BinaryData(NULL),
        ENCRYPT)->b, U);

Output:
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 // @PT_PART1
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 // @PT_PART2
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 // @PT_PART3

    $BinaryToHexString(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(0x0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00), 
        CBC, NONE, 
        $BinaryData(0x
            C7 BB B8 A0 57 3D 5D C4 6E 4C 58 F9 05 EA 41 8F 
            CE 8F F7 C2 67 4C B7 DC 83 35 6B 77 4B 64 08 DD 
            0B DE 22 F4 3C AA A9 8D 83 E5 A9 36 22 4E 2C 8E), 
        $BinaryData(NULL),
        DECRYPT)->b, U);

...........................................................................

+-------------------------------+
| CBC_MODE_ENCRYPTION           |
+-------------------------------+
| CT = ECB_ENC(KEY, IV XOR PT); |
| IV = CT;                      |
+-------------------------------+

Output:
C7 BB B8 A0 57 3D 5D C4 6E 4C 58 F9 05 EA 41 8F // @CT_PART1

    $BinaryToHexString(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(NULL),
        ECB, NONE, 
        $BinaryData($Xor(0x0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00, 0x01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01)), // IV ^ @PT_PART1
        $BinaryData(NULL),
        ENCRYPT)->b, U);

Output:
CE 8F F7 C2 67 4C B7 DC 83 35 6B 77 4B 64 08 DD // @CT_PART2

    $BinaryToHexString(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(NULL),
        ECB, NONE, 
        $BinaryData($Xor(0xC7 BB B8 A0 57 3D 5D C4 6E 4C 58 F9 05 EA 41 8F, 0x02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02)), // IV ^ @PT_PART2
        $BinaryData(NULL),
        ENCRYPT)->b, U);

Output:
0B DE 22 F4 3C AA A9 8D 83 E5 A9 36 22 4E 2C 8E // @PT_PART3

    $BinaryToHexString(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(NULL),
        ECB, NONE, 
        $BinaryData($Xor(0xCE 8F F7 C2 67 4C B7 DC 83 35 6B 77 4B 64 08 DD, 0x03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03)), // IV ^ @PT_PART3
        $BinaryData(NULL),
        ENCRYPT)->b, U);

...........................................................................

+-----------------------------+
| CBC_MODE_DECRYPTION         |
+-----------------------------+
| PT = ECB_DEC(KEY, CT) ^ IV; |
| IV = CT;                    |
+-----------------------------+

Output:
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 // @PT_PART1

    $BinaryToHexString(
    $Xor(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(NULL),
        ECB, NONE, 
        $BinaryData(0xC7 BB B8 A0 57 3D 5D C4 6E 4C 58 F9 05 EA 41 8F), // @CT_PART1
        $BinaryData(NULL),
        DECRYPT)->b, 0x0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00), U); // IV

Output:
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 // @PT_PART2

    $BinaryToHexString(
    $Xor(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(NULL),
        ECB, NONE, 
        $BinaryData(0xCE 8F F7 C2 67 4C B7 DC 83 35 6B 77 4B 64 08 DD), // @CT_PART2
        $BinaryData(NULL),
        DECRYPT)->b, 0xC7 BB B8 A0 57 3D 5D C4 6E 4C 58 F9 05 EA 41 8F), U); // IV

Output:
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 // @PT_PART3

    $BinaryToHexString(
    $Xor(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(NULL),
        ECB, NONE, 
        $BinaryData(0x0B DE 22 F4 3C AA A9 8D 83 E5 A9 36 22 4E 2C 8E), // @CT_PART3
        $BinaryData(NULL),
        DECRYPT)->b, 0xCE 8F F7 C2 67 4C B7 DC 83 35 6B 77 4B 64 08 DD), U); // IV
*******************************************
        CFB
*******************************************

Output:
21 A8 F8 93 B5 4D 5A E9 05 1E FD DD 6D AF 98 6B // @CT_PART1
E2 60 47 18 01 03 94 1C 52 FF 01 D7 42 48 F8 6A // @CT_PART2
6B 5B D2 15 1E 06 DE 58 F4 61 E8 2F A5 1E 92 DF // @CT_PART3

    $BinaryToHexString(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(0x0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00), 
        CFB, NONE, 
        $BinaryData(0x
	    01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
	    02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
	    03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03), 
        $BinaryData(NULL),
        ENCRYPT)->b, U);

Output:
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 // @PT_PART1
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 // @PT_PART2
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 // @PT_PART3

    $BinaryToHexString(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(0x0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00), 
        CFB, NONE, 
        $BinaryData(0x
            21 A8 F8 93 B5 4D 5A E9 05 1E FD DD 6D AF 98 6B 
            E2 60 47 18 01 03 94 1C 52 FF 01 D7 42 48 F8 6A 
            6B 5B D2 15 1E 06 DE 58 F4 61 E8 2F A5 1E 92 DF), 
        $BinaryData(NULL),
        DECRYPT)->b, U);

...........................................................................

+-----------------------------+
| CFB_MODE_ENCRYPTION         |
+-----------------------------+
| CT = ECB_ENC(KEY, IV) ^ PT; |
| IV = CT;                    |
+-----------------------------+

Output:
21 A8 F8 93 B5 4D 5A E9 05 1E FD DD 6D AF 98 6B // @CT_PART1

    $BinaryToHexString(
    $Xor(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(NULL), 
        ECB, NONE, 
        $BinaryData(0x0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00), // IV
        $BinaryData(NULL),
        ENCRYPT)->b, 0x01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01), U); // @PT_PART1

Output:
E2 60 47 18 01 03 94 1C 52 FF 01 D7 42 48 F8 6A // @CT_PART2

    $BinaryToHexString(
    $Xor(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(NULL), 
        ECB, NONE, 
        $BinaryData(0x21 A8 F8 93 B5 4D 5A E9 05 1E FD DD 6D AF 98 6B), // IV
        $BinaryData(NULL),
        ENCRYPT)->b, 0x02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02), U); // @PT_PART2

Output:
6B 5B D2 15 1E 06 DE 58 F4 61 E8 2F A5 1E 92 DF // @CT_PART3

    $BinaryToHexString(
    $Xor(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(NULL), 
        ECB, NONE, 
        $BinaryData(0xE2 60 47 18 01 03 94 1C 52 FF 01 D7 42 48 F8 6A), // IV
        $BinaryData(NULL),
        ENCRYPT)->b, 0x03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03), U); // @PT_PART3

...........................................................................

+-----------------------------+
| CFB_MODE_DECRYPTION         |
+-----------------------------+
| PT = ECB_DEC(KEY, IV) ^ CT; |
| IV = CT;                    |
+-----------------------------+

Output:
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 // @PT_PART1

    $BinaryToHexString(
    $Xor(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(NULL), 
        ECB, NONE, 
        $BinaryData(0x0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00), // IV
        $BinaryData(NULL),
        ENCRYPT)->b, 0x21 A8 F8 93 B5 4D 5A E9 05 1E FD DD 6D AF 98 6B), U); // @CT_PART1

Output:
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 // @PT_PART2

    $BinaryToHexString(
    $Xor(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(NULL), 
        ECB, NONE, 
        $BinaryData(0x21 A8 F8 93 B5 4D 5A E9 05 1E FD DD 6D AF 98 6B), // IV
        $BinaryData(NULL),
        ENCRYPT)->b, 0xE2 60 47 18 01 03 94 1C 52 FF 01 D7 42 48 F8 6A), U); // @CT_PART2

Output:
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 // @PT_PART3

    $BinaryToHexString(
    $Xor(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(NULL), 
        ECB, NONE, 
        $BinaryData(0xE2 60 47 18 01 03 94 1C 52 FF 01 D7 42 48 F8 6A), // IV
        $BinaryData(NULL),
        ENCRYPT)->b, 0x6B 5B D2 15 1E 06 DE 58 F4 61 E8 2F A5 1E 92 DF), U); // @CT_PART3

*******************************************
        OFB
*******************************************

Output:
21 A8 F8 93 B5 4D 5A E9 05 1E FD DD 6D AF 98 6B // @CT_PART1
E6 0C 2F 6D 45 60 A2 C7 86 06 29 89 D7 36 72 49 // @CT_PART2
88 9F 1C 11 34 6F 84 FE B3 88 36 4D 43 42 8C 9E // @CT_PART3

    $BinaryToHexString(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(0x0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00), 
        OFB, NONE, 
        $BinaryData(0x
	    01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
	    02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
	    03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03), 
        $BinaryData(NULL),
        ENCRYPT)->b, U);

Output:
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 // @PT_PART1
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 // @PT_PART2
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 // @PT_PART3

    $BinaryToHexString(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(0x0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00), 
        OFB, NONE, 
        $BinaryData(0x
            21 A8 F8 93 B5 4D 5A E9 05 1E FD DD 6D AF 98 6B 
            E6 0C 2F 6D 45 60 A2 C7 86 06 29 89 D7 36 72 49 
            88 9F 1C 11 34 6F 84 FE B3 88 36 4D 43 42 8C 9E), 
        $BinaryData(NULL),
        DECRYPT)->b, U);

...........................................................................

+-----------------------------+
| OFB_MODE_ENCRYPTION         |
+-----------------------------+
| CT = ECB_ENC(KEY, IV) ^ PT; |
| IV = ECB_ENC(KEY, IV)       |
+-----------------------------+

Output:
20 A9 F9 92 B4 4C 5B E8 04 1F FC DC 6C AE 99 6A  // @CT_TEMP1

    $BinaryToHexString(s
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(NULL), 
        ECB, NONE, 
        $BinaryData(0x0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00), // IV
        $BinaryData(NULL),
        ENCRYPT)->b, U);

Output:
21 A8 F8 93 B5 4D 5A E9 05 1E FD DD 6D AF 98 6B // @CT_PART1
$BinaryToHexString($Xor(0x20 A9 F9 92 B4 4C 5B E8 04 1F FC DC 6C AE 99 6A , 0x01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01), U); // @CT_TEMP1 ^ @PT_PART1

Output:
E4 0E 2D 6F 47 62 A0 C5 84 04 2B 8B D5 34 70 4B  // @CT_TEMP2

    $BinaryToHexString(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(NULL), 
        ECB, NONE, 
        $BinaryData(0x20 A9 F9 92 B4 4C 5B E8 04 1F FC DC 6C AE 99 6A), // IV == @CT_TEMP1
        $BinaryData(NULL),
        ENCRYPT)->b, U);

Output:
E6 0C 2F 6D 45 60 A2 C7 86 06 29 89 D7 36 72 49 // @CT_PART2
$BinaryToHexString($Xor(0xE4 0E 2D 6F 47 62 A0 C5 84 04 2B 8B D5 34 70 4B, 0x02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02), U); // @CT_TEMP2 ^ @PT_PART2

Output:
8B 9C 1F 12 37 6C 87 FD B0 8B 35 4E 40 41 8F 9D // @CT_TEMP3
    $BinaryToHexString(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(NULL), 
        ECB, NONE, 
        $BinaryData(0xE4 0E 2D 6F 47 62 A0 C5 84 04 2B 8B D5 34 70 4B), // IV == @CT_TEMP2
        $BinaryData(NULL),
        ENCRYPT)->b, U);
Output:
88 9F 1C 11 34 6F 84 FE B3 88 36 4D 43 42 8C 9E  // @CT_PART3
$BinaryToHexString($Xor(0x8B 9C 1F 12 37 6C 87 FD B0 8B 35 4E 40 41 8F 9D, 0x03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03), U); // @CT_TEMP3 ^ @PT_PART3

...........................................................................

+-----------------------------+
| OFB_MODE_DECRYPTION         |
+-----------------------------+
| PT = ECB_DEC(KEY, IV) ^ CT; |
| IV = ECB_DEC(KEY, IV)       |
+-----------------------------+

Output:
20 A9 F9 92 B4 4C 5B E8 04 1F FC DC 6C AE 99 6A 
    $BinaryToHexString(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(NULL), 
        ECB, NONE, 
        $BinaryData(0x0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00),
        $BinaryData(NULL),
        ENCRYPT)->b, U);

Output:
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 
$BinaryToHexString($Xor(0x20 A9 F9 92 B4 4C 5B E8 04 1F FC DC 6C AE 99 6A , 
    0x21 A8 F8 93 B5 4D 5A E9 05 1E FD DD 6D AF 98 6B), U);

Output:
E4 0E 2D 6F 47 62 A0 C5 84 04 2B 8B D5 34 70 4B 
    $BinaryToHexString(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(NULL), 
        ECB, NONE, 
        $BinaryData(0x20 A9 F9 92 B4 4C 5B E8 04 1F FC DC 6C AE 99 6A),
        $BinaryData(NULL),
        ENCRYPT)->b, U);

Output:
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 
$BinaryToHexString($Xor(0xE4 0E 2D 6F 47 62 A0 C5 84 04 2B 8B D5 34 70 4B, 0xE6 0C 2F 6D 45 60 A2 C7 86 06 29 89 D7 36 72 49), U);

Output:
8B 9C 1F 12 37 6C 87 FD B0 8B 35 4E 40 41 8F 9D 
    $BinaryToHexString(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(NULL), 
        ECB, NONE, 
        $BinaryData(0xE4 0E 2D 6F 47 62 A0 C5 84 04 2B 8B D5 34 70 4B),
        $BinaryData(NULL),
        ENCRYPT)->b, U);

Output:
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 
$BinaryToHexString($Xor(0x8B 9C 1F 12 37 6C 87 FD B0 8B 35 4E 40 41 8F 9D, 0x88 9F 1C 11 34 6F 84 FE B3 88 36 4D 43 42 8C 9E), U);
*******************************************
        CTR
*******************************************

Output:
21 A8 F8 93 B5 4D 5A E9 05 1E FD DD 6D AF 98 6B // @CT_PART1
45 A4 A6 A7 77 5C 62 46 6C B0 93 EE 4B 3B 03 5D // @CT_PART2
B8 DC FB BF ED C0 6A B9 D2 C0 B6 5C 73 8F 77 96 // @CT_PART3

    $BinaryToHexString(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(0x0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00), 
        CTR, NONE, 
        $BinaryData(0x
	    01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
	    02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
	    03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03), 
        $BinaryData(NULL),
        ENCRYPT)->b, U);

Output:
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 // @PT_PART1
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 // @PT_PART2
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 // @PT_PART3

    $BinaryToHexString(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(0x0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00), 
        CTR, NONE, 
        $BinaryData(0x
            21 A8 F8 93 B5 4D 5A E9 05 1E FD DD 6D AF 98 6B  
            45 A4 A6 A7 77 5C 62 46 6C B0 93 EE 4B 3B 03 5D  
            B8 DC FB BF ED C0 6A B9 D2 C0 B6 5C 73 8F 77 96 ), 
        $BinaryData(NULL),
        DECRYPT)->b, U);

...........................................................................

+-----------------------------+
| CTR_MODE_ENCRYPTION         |
+-----------------------------+
| CT = ECB_ENC(KEY, IV) ^ PT; |
| IV = ++IV;                  |
+-----------------------------+
Output:
20 A9 F9 92 B4 4C 5B E8 04 1F FC DC 6C AE 99 6A 

    $BinaryToHexString(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(NULL), 
        ECB, NONE, 
        $BinaryData(0x0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00),
        $BinaryData(NULL),
        ENCRYPT)->b, U);

Output:
21 A8 F8 93 B5 4D 5A E9 05 1E FD DD 6D AF 98 6B // @CT_PART1

$BinaryToHexString($Xor(0x20 A9 F9 92 B4 4C 5B E8 04 1F FC DC 6C AE 99 6A, 0x01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01), U);

Output:
0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 01 

$BinaryToHexString($Inc(0x0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00), U); // NOnce++

Output:
47 A6 A4 A5 75 5E 60 44 6E B2 91 EC 49 39 01 5F 

    $BinaryToHexString(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(NULL), 
        ECB, NONE, 
        $BinaryData(0x0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 01 ),
        $BinaryData(NULL),
        ENCRYPT)->b, U);

Output:
45 A4 A6 A7 77 5C 62 46 6C B0 93 EE 4B 3B 03 5D // @CT_PART2

$BinaryToHexString($Xor(0x47 A6 A4 A5 75 5E 60 44 6E B2 91 EC 49 39 01 5F, 0x02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02), U);

Output:
0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 02

$BinaryToHexString($Inc(0x0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 01), U);

Output:
BB DF F8 BC EE C3 69 BA D1 C3 B5 5F 70 8C 74 95

    $BinaryToHexString(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(NULL), 
        ECB, NONE, 
        $BinaryData(0x0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 02),
        $BinaryData(NULL),
        ENCRYPT)->b, U);

Output:
B8 DC FB BF ED C0 6A B9 D2 C0 B6 5C 73 8F 77 96 // @CT_PART3
$BinaryToHexString($Xor(0xBB DF F8 BC EE C3 69 BA D1 C3 B5 5F 70 8C 74 95, 0x03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03), U);

...........................................................................

+-----------------------------+
| CTR_MODE_DECRYPTION         |
+-----------------------------+
| PT = ECB_ENC(KEY, IV) ^ CT; |
| IV = ++IV;                  |
+-----------------------------+
20 A9 F9 92 B4 4C 5B E8 04 1F FC DC 6C AE 99 6A

    $BinaryToHexString(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(NULL), 
        ECB, NONE, 
        $BinaryData(0x0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00),
        $BinaryData(NULL),
        ENCRYPT)->b, U);

01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 // @PT_PART1

$BinaryToHexString($Xor(0x20 A9 F9 92 B4 4C 5B E8 04 1F FC DC 6C AE 99 6A, 0x21 A8 F8 93 B5 4D 5A E9 05 1E FD DD 6D AF 98 6B), U);
Output:
0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 01 

$BinaryToHexString($Inc(0x0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00), U); // NOnce++

Output:
47 A6 A4 A5 75 5E 60 44 6E B2 91 EC 49 39 01 5F 

    $BinaryToHexString(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(NULL), 
        ECB, NONE, 
        $BinaryData(0x0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 01 ),
        $BinaryData(NULL),
        ENCRYPT)->b, U);

Output:
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 // @PT_PART2

$BinaryToHexString($Xor(0x47 A6 A4 A5 75 5E 60 44 6E B2 91 EC 49 39 01 5F, 0x45 A4 A6 A7 77 5C 62 46 6C B0 93 EE 4B 3B 03 5D), U);

Output:
0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 02

$BinaryToHexString($Inc(0x0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 01), U);

Output:
BB DF F8 BC EE C3 69 BA D1 C3 B5 5F 70 8C 74 95

    $BinaryToHexString(
    $BlockCipher(
        "AES", 
        $BinaryData(0x00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F), 
        $BinaryData(NULL), 
        ECB, NONE, 
        $BinaryData(0x0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 02),
        $BinaryData(NULL),
        ENCRYPT)->b, U);

Output:
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 // @PT_PART3

$BinaryToHexString($Xor(0xBB DF F8 BC EE C3 69 BA D1 C3 B5 5F 70 8C 74 95, 0xB8 DC FB BF ED C0 6A B9 D2 C0 B6 5C 73 8F 77 96), U);
************************
    ECB
************************

加密并行:YES
解密并行:YES
随机读写:YES
误差不会被传送
不能隐藏明文的模

************************
    CBC
************************

加密并行:NO
解密并行:YES
随机读写:YES

************************
    CFB
************************

加密并行:NO
解密并行:YES
随机读写:YES

************************
    OFB
************************

加密并行:NO
解密并行:NO
随机读写:NO

************************
    CTR
************************

加密并行:YES
解密并行:YES
随机读写:YES