DEA128CBCdecrypt and DEA128CBCencrypt (String functions): Difference between revisions
m (typo) |
m (→See also: add templates) |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
{{Template:String:DEA128CBCdecrypt and DEA128CBCencrypt subtitle}} | {{Template:String:DEA128CBCdecrypt and DEA128CBCencrypt subtitle}} | ||
<var>DEA128CBCdecrypt</var> and <var>DEA128CBCencrypt</var> are synonyms for the [[String class]] function that applies the DEA (Data Encryption Algorithm) using a 64-bit symmetric key to decrypt or encrypt each 64-bit block of input text. CBC (Cipher Block Chaining) refers to a randomizing tactic whereby the result of applying the DEA cipher to a 64-bit block is combined with the next block before | <var>DEA128CBCdecrypt</var> and <var>DEA128CBCencrypt</var> are synonyms for the [[String class]] function that applies the DEA (Data Encryption Algorithm) using a 64-bit symmetric key to decrypt or encrypt each 64-bit block of input text. CBC (Cipher Block Chaining) refers to a randomizing tactic whereby the result of applying the DEA cipher to a 64-bit block is combined with the next block before the next block's encryption; and so on for each subsequent block. An initialization vector is used in the first block to make its encryption unique. | ||
For more details about how the algorithm works, see [https://en.wikipedia.org/wiki/Data_Encryption_Standard Data Encryption Standard] and [https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Cipher Block Chaining (CBC) Cipher Block Chaining (CBC)]. | For more details about how the algorithm works, see [https://en.wikipedia.org/wiki/Data_Encryption_Standard Data Encryption Standard] and [https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Cipher Block Chaining (CBC) Cipher Block Chaining (CBC)]. | ||
Line 64: | Line 64: | ||
==See also== | ==See also== | ||
<ul> | <ul> | ||
<li>< | <li>Additional DEA methods: | ||
<ul> | |||
{{Template:DEA crypto methods}} | |||
</ul></li> | |||
<li>Additional two-way ciphers: | |||
<ul> | |||
{{Template:AES crypto methods}} | |||
<li>[[RC4decrypt and RC4encrypt (String functions)]]</li> | |||
</ul></li> | |||
<li><var>[[ | <li><var>String</var> one-way ciphers: | ||
<ul> | |||
<li><var>[[MD5digest (String function)|MD5digest]]</var> </li> | |||
<li><var>[[ | <li><var>[[SHAdigest (String function)|SHAdigest]]</var> </li> | ||
<li><var>[[ | <li><var>[[SHA224digest (String function)|SHA224digest]]</var> </li> | ||
<li><var>[[ | <li><var>[[SHA256digest (String function)|SHA256digest]]</var> </li> | ||
</ul></li> | |||
</ul> | </ul> | ||
{{Template:String:DEA128CBCdecrypt and DEA128CBCencrypt footer}} | {{Template:String:DEA128CBCdecrypt and DEA128CBCencrypt footer}} |
Latest revision as of 20:53, 16 March 2016
DEA128CBC encryption or decryption (String class)
[Introduced in Model 204 7.6]
DEA128CBCdecrypt and DEA128CBCencrypt are synonyms for the String class function that applies the DEA (Data Encryption Algorithm) using a 64-bit symmetric key to decrypt or encrypt each 64-bit block of input text. CBC (Cipher Block Chaining) refers to a randomizing tactic whereby the result of applying the DEA cipher to a 64-bit block is combined with the next block before the next block's encryption; and so on for each subsequent block. An initialization vector is used in the first block to make its encryption unique.
For more details about how the algorithm works, see Data Encryption Standard and Block Chaining (CBC) Cipher Block Chaining (CBC).
The length of the returned string is the same as that of the object string.
DEA is a two-way cipher, so encrypting a string with a key and then decrypting the result of that encryption with the same key produces the original string. That is, the following assertion should always hold:
assert %string:dea128cbcencrypt(%key):dea128cbcdecrypt(%key) eq %string
You can use DEA128CBCdecrypt to "document" that you are decrypting, and use DEA128CBCencrypt to "document" that you are encrypting. You can use DEA128CBCdecrypt and DEA128CBCencrypt interchangeably on the rest of this page.
Syntax
%outString = string:DEA128CBCdecrypt( key, initVector) Throws UnsupportedCrypto, InvalidCryptoKey, InvalidCryptoData, InvalidCryptoInitVector
%outString = string:DEA128CBCencrypt( key, initVector) Throws UnsupportedCrypto, InvalidCryptoKey, InvalidCryptoData, InvalidCryptoInitVector
Syntax terms
%outString | A string variable to receive the encrypted or decrypted method object string. Its length is the same as string. |
---|---|
string | The string to which the method is applied. string must be a multiple of eight bytes in length; its maximum is 32768 bytes. It may be null. |
key | A 16-byte (only) string variable whose value is used to encrypt or decrypt the method object, string. |
initVector | An 8-byte string that is used to randomize the encryption. The initialization vector is used to ensure distinct ciphertexts are produced even when the same plaintext is encrypted multiple times independently with the same key. |
Usage notes
- You are not prevented from creating confusion by encrypting with DEA128CBCdecrypt and decrypting with DEA128CBCencrypt.
- The DEA128CBCdecrypt and DEA128CBCencrypt functions are available as of Model 204 7.6.
Examples
In the following example, the output string from the DEA128CBCencrypt method is converted to hex using the StringToHex function to reveal its non-displayable characters, then decrypted to return the original input string:
b %ls is longstring %string is longstring %key is string len 16 %iv is string len 8 %string = 'onetwothreefour0onetwothreefour0' %key = '1234567816161616' %iv = 'abcdefgh' %ls = %string:dea128cbcEncrypt(%key, %iv) printText {~} is {%ls:stringTohex} printText {~} is: {%ls:dea128cbcDecrypt(%key, %iv)} end
The result is:
%ls:stringTohex is: 31C96E0DC22B9503D8CEAE6BCCF569C5A669BD6BF90F9A8205F544CD647926F9 %ls:dea128cbcDecrypt(%key, %iv) is: onetwothreefour0onetwothreefour0
See also
- Additional DEA methods:
- DEA64decrypt and DEA64encrypt (String functions)
- DEA128decrypt and DEA128encrypt (String functions)
- DEA192decrypt and DEA192encrypt (String functions)
- DEA64CBCdecrypt and DEA64CBCencrypt (String functions)
- DEA128CBCdecrypt and DEA128CBCencrypt (String functions)
- DEA192CBCdecrypt and DEA192CBCencrypt (String functions)
- Additional two-way ciphers:
- AES128decrypt and AES128encrypt (String functions)
- AES192decrypt and AES192encrypt (String functions)
- AES256decrypt and AES256encrypt (String functions)
- AES128CBCdecrypt and AES128CBCencrypt (String functions)
- AES192CBCdecrypt and AES192CBCencrypt (String functions)
- AES256CBCdecrypt and AES256CBCencrypt (String functions)
- RC4decrypt and RC4encrypt (String functions)
- String one-way ciphers: