DecodeString: Difference between revisions
Jump to navigation
Jump to search
m (Fix link in AES section and do some other cosmetic tweaks) |
Fernando187 (talk | contribs) m (→Example) |
||
(7 intermediate revisions by 6 users not shown) | |||
Line 7: | Line 7: | ||
==Syntax== | ==Syntax== | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
string decodeString ( string algorithm, string input, table options | string decodeString ( string algorithm, string input, [table options, function callback] ) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 18: | Line 18: | ||
* ''tea'' ([https://en.wikipedia.org/wiki/Tiny_Encryption_Algorithm Tiny Encryption Algorithm]) | * ''tea'' ([https://en.wikipedia.org/wiki/Tiny_Encryption_Algorithm Tiny Encryption Algorithm]) | ||
** '''key''': a key to decode the input with. | ** '''key''': a key to decode the input with. | ||
* ''aes128'' ([https://en.wikipedia.org/wiki/Advanced_Encryption_Standard Advanced Encryption Standard]) | {{Added feature/item|1.5.9|1.5.8|20898| | ||
* ''aes128'' ([https://en.wikipedia.org/wiki/Advanced_Encryption_Standard Advanced Encryption Standard] in CTR mode) | |||
** '''key''': a key to decode the input with. | ** '''key''': a key to decode the input with. | ||
** '''iv''': the initialization vector that was generated by [[encodeString]] for this combination of data and encryption algorithm. | ** '''iv''': the initialization vector that was generated by [[encodeString]] for this combination of data and encryption algorithm. | ||
}} | |||
{{Added feature/item|1.5.9|1.5.8|21055| | |||
* ''rsa'' ([https://en.wikipedia.org/wiki/RSA_(cryptosystem) Rivest-Shamir-Adleman] in OAEP with SHA-1 mode) | |||
** '''key''': a private key to decode the input. | |||
|21055}} | |||
{{Added feature/item|1.6.0|1.6.1|22408| | |||
* ''base64'' ([https://en.wikipedia.org/wiki/Base64 Base64 Encoding Algorithm]) | |||
** '''variant''': a string that defines the encoding variant. (Currently only "URL" is available) | |||
|22408}} | |||
{{Added feature/item|1.6.0|1.6.1|22408| | |||
* ''base32'' ([https://en.wikipedia.org/wiki/Base32 Base32 Encoding Algorithm]) | |||
** '''variant''': a string that defines the encoding variant. (Currently only "Hex" is available) | |||
|22408}} | |||
{{Added feature/item|1.6.0|1.6.1|23219| | |||
* ''zlib'' ([https://en.wikipedia.org/wiki/Zlib Zlib Compression Algorithm]) | |||
** '''format''': a string or number that defines compression format. (gzip, zlib, raw or [https://www.zlib.net/manual.html#Advanced window size number]) (default: auto) (please note that automatic determination of format may not be reliable in some cases due to the nature of compression algorithm) | |||
|23219}} | |||
===Optional Arguments=== | ===Optional Arguments=== | ||
*'''callback:''' providing a callback will run this function asynchronously, the arguments to the callback are the same as the returned values below. | *'''callback:''' providing a callback will run this function asynchronously, the arguments to the callback are the same as the returned values below. | ||
===Returns=== | ===Returns=== | ||
Returns the decoded string if successful, ''false'' otherwise. If a callback was provided, the decoded string is argument to the callback. | Returns the decoded string if successful, ''false'' otherwise. If a callback was provided, the decoded string is argument to the callback. | ||
==Example== | ==Example== | ||
<section name="Server" class="server" show="true"> | <section name="Server" class="server" show="true"> | ||
Adds a ''/decode'' command in which you can provide an algorithm, key and data to decode. | |||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
addCommandHandler("decode", | addCommandHandler("decode", |
Latest revision as of 10:11, 19 May 2025
This function decodes an encoded string using the specified algorithm. The counterpart of this function is encodeString.
Syntax
string decodeString ( string algorithm, string input, [table options, function callback] )
Required Arguments
- algorithm: The algorithm to use.
- input: The input to decode.
- options: A table with options and other necessary data for the algorithm, as detailed below.
Options for each algorithm
- tea (Tiny Encryption Algorithm)
- key: a key to decode the input with.
- aes128 (Advanced Encryption Standard in CTR mode)
- key: a key to decode the input with.
- iv: the initialization vector that was generated by encodeString for this combination of data and encryption algorithm.
- rsa (Rivest-Shamir-Adleman in OAEP with SHA-1 mode)
- key: a private key to decode the input.
Optional Arguments
- callback: providing a callback will run this function asynchronously, the arguments to the callback are the same as the returned values below.
Returns
Returns the decoded string if successful, false otherwise. If a callback was provided, the decoded string is argument to the callback.
Example
Click to collapse [-]
ServerAdds a /decode command in which you can provide an algorithm, key and data to decode.
addCommandHandler("decode", function(player, _, algorithm, key, ...) if algorithm and key then local text = table.concat({...}, " ") if type(text) == "string" and text ~= "" then local decoded = decodeString(algorithm, text, { key = key }) if decoded then outputChatBox("The result of " .. algorithm .. " decoding is: " .. decoded, player) else outputChatBox("Failed to decode. Make sure that all arguments are valid.", player, 255, 0, 0) end else outputChatBox("Please specify text in the command.", player, 255, 0, 0) end else outputChatBox("Invalid algorithm and/or key.", player, 255, 0, 0) end end )
See Also
- addDebugHook
- debugSleep
- decodeString
- encodeString
- fromJSON
- generateKeyPair
- getColorFromString
- getDevelopmentMode
- getDistanceBetweenPoints2D
- getDistanceBetweenPoints3D
- getEasingValue
- getNetworkStats
- getNetworkUsageData
- getPerformanceStats
- getRealTime
- getTickCount
- getTimerDetails
- getTimers
- getFPSLimit
- getUserdataType
- getVersion
- gettok
- isTransferBoxVisible
- setTransferBoxVisible
- hash
- inspect
- interpolateBetween
- iprint
- isOOPEnabled
- isTimer
- killTimer
- md5
- passwordHash
- passwordVerify
- pregFind
- pregMatch
- pregReplace
- removeDebugHook
- resetTimer
- setDevelopmentMode
- setFPSLimit
- setTimer
- ref
- deref
- sha256
- split
- teaDecode
- teaEncode
- toJSON
- tocolor
- getProcessMemoryStats
- utfChar
- utfCode
- utfLen
- utfSeek
- utfSub
- bitAnd
- bitNot
- bitOr
- bitXor
- bitTest
- bitLRotate
- bitRRotate
- bitLShift
- bitRShift
- bitArShift
- bitExtract
- bitReplace