All Products
Search
Document Center

Server Load Balancer:Fungsi algoritma cipher

Last Updated:Jun 27, 2025

Topik ini menjelaskan sintaks, fitur, parameter, dan nilai kembalian dari fungsi algoritma cipher, serta menyertakan contoh penggunaannya.

aes_new | aes_enc | aes_dec | sha1 | sha2 | hmac | hmac_sha1 | md5 | md5_bin

aes_new

Item

Deskripsi

Sintaks

aes_new(config)

Deskripsi

Membuat objek Advanced Encryption Standard (AES), yang digunakan untuk operasi enkripsi dan dekripsi selanjutnya. Untuk melakukan enkripsi, panggil fungsi aes_enc(). Untuk melakukan dekripsi, panggil fungsi aes_dec().

Parameter

Parameter config bertipe kamus dan mencakup argumen berikut:

  • key: kunci, bertipe string. Parameter ini wajib.

  • salt: nilai salt, bertipe string. Parameter ini opsional.

  • cipher_len: panjang kunci. Parameter ini wajib. Nilai valid: 128, 192, dan 256.

  • cipher_mode: mode yang digunakan untuk enkripsi atau dekripsi. Parameter ini wajib. Nilai valid: ecb, cbc, ctr, cfb, dan ofb.

  • iv: vektor awal, bertipe string. Parameter ini opsional.

Nilai kembalian

Jika fungsi berhasil, objek AES (bertipe kamus) akan dikembalikan. Jika tidak, false akan dikembalikan.

Contoh

aes_conf = []
plaintext = ''
if and($http_mode, eq($http_mode, 'ecb-128')) {
  set(aes_conf, 'key', 'ab8bfd9f-a1af-4ba2-bbb0-1ee520e3d8bc')
  set(aes_conf, 'salt', '1234567890')
  set(aes_conf, 'cipher_len', 128)
  set(aes_conf, 'cipher_mode', 'ecb')
  plaintext = 'hello aes ecb-128'
}
if and($http_mode, eq($http_mode, 'cbc-256')) {
  set(aes_conf, 'key', '146ebcc8-392b-4b3a-a720-e7356f62')
  set(aes_conf, 'cipher_len', 256)
  set(aes_conf, 'cipher_mode', 'cbc')
  set(aes_conf, 'iv', '0123456789abcdef')
  plaintext = 'hello aes cbc-256'
}
if and($http_mode, eq($http_mode, 'ofb-256')) {
  set(aes_conf, 'key', '146ebcc8-392b-4b3a-a720-e7356f62')
  set(aes_conf, 'cipher_len', 256)
  set(aes_conf, 'cipher_mode', 'ofb')
  set(aes_conf, 'iv', tochar(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0))
  plaintext = 'hello aes ofb-256'
}

aes_obj = aes_new(aes_conf)
if not(aes_obj) {
  say(concat('aes obj failed'))
  exit(400)
}

ciphertext = aes_enc(aes_obj, plaintext)
plaintext_reverse = aes_dec(aes_obj, ciphertext)

say(concat('plain: ', plaintext))
say(concat('cipher: ', tohex(ciphertext)))
say(concat('plain_reverse: ', plaintext_reverse))

if ne(plaintext, plaintext_reverse) {
  say('plaintext ~= plaintext_reverse')
  exit(400)
}

aes_enc

Item

Deskripsi

Sintaks

aes_enc(o, s)

Deskripsi

Mengenkripsi data menggunakan algoritma enkripsi AES.

Parameter

  • s: teks biasa yang akan dienkripsi.

  • o: objek AES yang dikembalikan oleh fungsi aes_new.

Nilai kembalian

Mengembalikan teks sandi setelah teks yang ditentukan oleh parameter s dienkripsi.

Contoh

aes_conf = []
plaintext = ''
if and($http_mode, eq($http_mode, 'ecb-128')) {
  set(aes_conf, 'key', 'ab8bfd9f-a1af-4ba2-bbb0-1ee520e3d8bc')
  set(aes_conf, 'salt', '1234567890')
  set(aes_conf, 'cipher_len', 128)
  set(aes_conf, 'cipher_mode', 'ecb')
  plaintext = 'hello aes ecb-128'
}
if and($http_mode, eq($http_mode, 'cbc-256')) {
  set(aes_conf, 'key', '146ebcc8-392b-4b3a-a720-e7356f62')
  set(aes_conf, 'cipher_len', 256)
  set(aes_conf, 'cipher_mode', 'cbc')
  set(aes_conf, 'iv', '0123456789abcdef')
  plaintext = 'hello aes cbc-256'
}
if and($http_mode, eq($http_mode, 'ofb-256')) {
  set(aes_conf, 'key', '146ebcc8-392b-4b3a-a720-e7356f62')
  set(aes_conf, 'cipher_len', 256)
  set(aes_conf, 'cipher_mode', 'ofb')
  set(aes_conf, 'iv', tochar(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0))
  plaintext = 'hello aes ofb-256'
}

aes_obj = aes_new(aes_conf)
if not(aes_obj) {
  say(concat('aes obj failed'))
  exit(400)
}

ciphertext = aes_enc(aes_obj, plaintext)
plaintext_reverse = aes_dec(aes_obj, ciphertext)

say(concat('plain: ', plaintext))
say(concat('cipher: ', tohex(ciphertext)))
say(concat('plain_reverse: ', plaintext_reverse))

if ne(plaintext, plaintext_reverse) {
  say('plaintext ~= plaintext_reverse')
  exit(400)
}

aes_dec

Item

Deskripsi

Sintaks

aes_dec(o, s)

Deskripsi

Mendekripsi data menggunakan algoritma enkripsi AES.

Parameter

  • s: teks sandi yang akan didekripsi.

  • o: objek AES yang dikembalikan oleh fungsi aes_new.

Nilai kembalian

Mengembalikan teks biasa setelah teks yang ditentukan oleh parameter s didekripsi.

Contoh

aes_conf = []
plaintext = ''
if and($http_mode, eq($http_mode, 'ecb-128')) {
  set(aes_conf, 'key', 'ab8bfd9f-a1af-4ba2-bbb0-1ee520e3d8bc')
  set(aes_conf, 'salt', '1234567890')
  set(aes_conf, 'cipher_len', 128)
  set(aes_conf, 'cipher_mode', 'ecb')
  plaintext = 'hello aes ecb-128'
}
if and($http_mode, eq($http_mode, 'cbc-256')) {
  set(aes_conf, 'key', '146ebcc8-392b-4b3a-a720-e7356f62')
  set(aes_conf, 'cipher_len', 256)
  set(aes_conf, 'cipher_mode', 'cbc')
  set(aes_conf, 'iv', '0123456789abcdef')
  plaintext = 'hello aes cbc-256'
}
if and($http_mode, eq($http_mode, 'ofb-256')) {
  set(aes_conf, 'key', '146ebcc8-392b-4b3a-a720-e7356f62')
  set(aes_conf, 'cipher_len', 256)
  set(aes_conf, 'cipher_mode', 'ofb')
  set(aes_conf, 'iv', tochar(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0))
  plaintext = 'hello aes ofb-256'
}

aes_obj = aes_new(aes_conf)
if not(aes_obj) {
  say(concat('aes obj failed'))
  exit(400)
}

ciphertext = aes_enc(aes_obj, plaintext)
plaintext_reverse = aes_dec(aes_obj, ciphertext)

say(concat('plain: ', plaintext))
say(concat('cipher: ', tohex(ciphertext)))
say(concat('plain_reverse: ', plaintext_reverse))

if ne(plaintext, plaintext_reverse) {
  say('plaintext ~= plaintext_reverse')
  exit(400)
}

sha1

Item

Deskripsi

Sintaks

sha1(s)

Deskripsi

Menghitung digest SHA-1.

Parameter

s: string untuk mana Anda ingin menghitung digest.

Nilai kembalian

Digest SHA-1 dalam format biner.

Contoh

digest = sha1('hello sha')
say(concat('sha1:', tohex(digest)))

Output:

sha1:853789bc783a6b573858b6cc9f913afe82962956

sha2

Item

Deskripsi

Sintaks

sha2(s, l)

Deskripsi

Menghitung digest SHA-2.

Parameter

  • s: string untuk mana Anda ingin menghitung digest.

  • l: panjang digest SHA-2. Nilai valid: 224, 256, 384, dan 512.

Nilai kembalian

Digest SHA-2 dalam format biner.

Contoh

digest = sha2('hello sha2', 224)
say(concat('sha2-224:', tohex(digest)))

digest = sha2('hello sha2', 256)
say(concat('sha2-256:', tohex(digest)))

digest = sha2('hello sha2', 384)
say(concat('sha2-384:', tohex(digest)))

digest = sha2('hello sha2', 512)
say(concat('sha2-512:', tohex(digest)))

Output:

sha2-224:b24b7effcf53ce815ee7eb73c7382613aba1c334e2a1622655362927
sha2-256:af0425cee23c236b326ed1f008c9c7c143a611859a11e87d66d0a4c3217c7792
sha2-384:bebbdde9efabd4b9cf90856cf30e0b024dd13177d9367d2dcf8d7a04e059f92260f16b21e261358c2271be32086ef35b
sha2-512:a1d1aef051c198c0d26bc03500c177a315fa248cea815e04fbb9a75e5be5061617daab311c5e3d0b215dbfd4e83e73f23081242b0143dcdfce5cd92ec51394f7

hmac

Item

Deskripsi

Sintaks

hmac(k, s, v)

Deskripsi

Menghitung digest HMAC.

Parameter

  • k: kunci algoritma.

  • s: string untuk mana Anda ingin menghitung digest.

  • v: versi algoritma. Nilai valid: md5, sha1, sha256, dan sha512.

Nilai kembalian

Digest HMAC dalam format biner yang dihitung dengan menggunakan algoritma yang sesuai.

Contoh

k = '146ebcc8-392b-4b3a-a720-e7356f62f87b'
v = 'hello mac'
say(concat('hmac(md5): ', tohex(hmac(k, v, 'md5'))))
say(concat('hmac(sha1): ', tohex(hmac(k, v, 'sha1'))))
say(concat('hmac(sha256): ', tohex(hmac(k, v, 'sha256'))))
say(concat('hmac(sha512): ', tohex(hmac(k, v, 'sha512'))))
say(concat('hmac_sha1(): ', tohex(hmac_sha1(k, v))))

Output:

hmac(md5): 358cbfca8ad663b547c83748de2ea778
hmac(sha1): 5555633cef48c3413b68f9330e99357df1cc3d93
hmac(sha256): 7a494543cad3b92ce1e7c4bbc86a8f5212b53e4d661f7830f455847540a85771
hmac(sha512): 59d7c07996ff675b45bd5fd40a6122bb5f40f597357a9b4a9e29da6f5c7cb806798c016fe09cb46457b6df9717d26d0af19896f72eaf4296be03e3681fea59ad
hmac_sha1(): 5555633cef48c3413b68f9330e99357df1cc3d93

hmac_sha1

Item

Deskripsi

Sintaks

hmac_sha1(k, s)

Deskripsi

Menghitung digest HMAC-SHA-1.

Parameter

  • s: string untuk mana Anda ingin menghitung digest.

  • k: kunci HMAC-SHA-1.

Nilai kembalian

Digest HMAC-SHA-1 dalam format biner.

Contoh

k = '146ebcc8-392b-4b3a-a720-e7356f62f87b'
v = 'hello mac'
say(concat('hmac(md5): ', tohex(hmac(k, v, 'md5'))))
say(concat('hmac(sha1): ', tohex(hmac(k, v, 'sha1'))))
say(concat('hmac(sha256): ', tohex(hmac(k, v, 'sha256'))))
say(concat('hmac(sha512): ', tohex(hmac(k, v, 'sha512'))))
say(concat('hmac_sha1(): ', tohex(hmac_sha1(k, v))))

Output:

hmac(md5): 358cbfca8ad663b547c83748de2ea778
hmac(sha1): 5555633cef48c3413b68f9330e99357df1cc3d93
hmac(sha256): 7a494543cad3b92ce1e7c4bbc86a8f5212b53e4d661f7830f455847540a85771
hmac(sha512): 59d7c07996ff675b45bd5fd40a6122bb5f40f597357a9b4a9e29da6f5c7cb806798c016fe09cb46457b6df9717d26d0af19896f72eaf4296be03e3681fea59ad
hmac_sha1(): 5555633cef48c3413b68f9330e99357df1cc3d93

md5

Item

Deskripsi

Sintaks

md5(s)

Deskripsi

Menghitung digest MD5.

Parameter

s: string untuk mana Anda ingin menghitung digest.

Nilai kembalian

Digest MD5 dalam format heksadesimal.

Contoh

say(concat('md5: ', md5('hello md5')))

Output:

md5:741fc6b1878e208346359af502dd11c5

md5_bin

Item

Deskripsi

Sintaks

md5_bin(s)

Deskripsi

Menghitung digest MD5.

Parameter

s: string untuk mana Anda ingin menghitung digest.

Nilai kembalian

Digest MD5 dalam format biner.

Contoh

say(concat('md5_bin: ', tohex(md5_bin('hello md5'))))

Output:

md5_bin: 741fc6b1878e208346359af502dd11c5