|
|
(One intermediate revision by the same user not shown) |
Line 1: |
Line 1: |
| {{Template:String:DEA64encrypt subtitle}}
| | #REDIRECT [[DEA64decrypt and DEA64encrypt (String functions)]] |
| This method applies the DEA (Data Encryption Algorithm) using a 64-bit symmetric key to encrypt each 64-bit block of input text. For more details about how the algorithm works, see [https://en.wikipedia.org/wiki/Data_Encryption_Standard Data Encryption Standard].
| |
| | |
| 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 <b><i>always</i></b> hold:
| |
| <p class="code">[[Assert statement|assert]] %string:dea64encrypt(%key):dea64decrypt(%key) eq %string
| |
| </p>
| |
| You can use <var>RC4decrypt</var> to "document" that you are decrypting, and
| |
| use <var>RC4encrypt</var> to "document" that you are enrypting. In the remainder of this article, you can use <var>RC4decrypt</var> and <var>RC4encrypt</var> interchangeably.
| |
| | |
| ==Syntax==
| |
| {{Template:String:DEA64encrypt syntax}}
| |
| {{Template:String:DEA64decrypt syntax}}
| |
| | |
| ===Syntax terms===
| |
| <table>
| |
| <tr><th>%outString</th>
| |
| <td>A string variable to receive the encrypted or decrypted method object <var class="term">string</var>. Its length is the same as <var class="term">string</var>.</td></tr>
| |
| | |
| <tr><th>string</th>
| |
| <td>The string to which the method is applied. <var class="term">string</var> must be a multiple of eight bytes in length; its maximum is 32768 bytes. It may be null.</td></tr>
| |
| | |
| <tr><th>key</th>
| |
| <td>An 8-byte (only) string variable whose value is used to encrypt or decrypt the method object, <var class="term">string</var>.</td></tr>
| |
| </table>
| |
| | |
| ==Usage notes==
| |
| <ul>
| |
| <li>The <var>DEA64encrypt</var> and <var>DEA64decrypt</var> functions are available as of <var class="product">Model 204</var> 7.6. </li>
| |
| </ul>
| |
| | |
| ==Examples==
| |
| In the following example, the output string from the <var>DEA64encrypt</var> method is converted to hex using the <var>[[StringToHex (String function)|StringToHex]]</var> function to reveal its non-displayable characters, then decrypted to return the original input string:
| |
| | |
| <p class="code">b
| |
| %ls is longstring
| |
| %string is longstring
| |
| %key is longstring
| |
| %string = 'onetwothreefour0onetwothreefour0'
| |
| %key = '12345678'
| |
| | |
| %ls = %string:dea64encrypt(%key)
| |
| [[PrintText statement|printText]] {~} is {%ls:stringTohex}
| |
| printText {~} is: {%ls:rc4decrypt(%key)}
| |
| end
| |
| </p>
| |
| The result is:
| |
| <p class="output">%ls:stringTohex is: A54138C10468C061567574F88567E221A54138C10468C061567574F88567E221
| |
| %ls:dea64decrypt(%key) is: onetwothreefour0onetwothreefour0
| |
| </p>
| |
| | |
| ==See also==
| |
| <ul>
| |
| <li><var>[[DEA128encrypt (String function)|DEA128encrypt]]</var> </li>
| |
| | |
| <li><var>[[DEA256encrypt (String function)|DEA256encrypt]]</var> </li>
| |
| </ul>
| |
| | |
| {{Template:String:DEA64encrypt footer}}
| |