EncodeString: Difference between revisions
Jump to navigation
Jump to search
m (Added a small tip about the performance implications of aes128 vs tea) |
(RSA encryption) |
||
Line 24: | Line 24: | ||
** '''key''': a key to encode the input with (must be 16 characters long). | ** '''key''': a key to encode the input with (must be 16 characters long). | ||
|20898}} | |20898}} | ||
{{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 public key to encode the input. | |||
|21055}} | |||
===Optional Arguments=== | ===Optional Arguments=== | ||
Line 35: | Line 39: | ||
** '''iv''' ([https://en.wikipedia.org/wiki/Initialization_vector Initialization vector]): this is a string generated by the encryption algorithm that is needed to decrypt the message by [[decodeString]]. If a callback was provided, ''true'' is returned immediately, and the ''iv'' is passed as an argument to the callback. | ** '''iv''' ([https://en.wikipedia.org/wiki/Initialization_vector Initialization vector]): this is a string generated by the encryption algorithm that is needed to decrypt the message by [[decodeString]]. If a callback was provided, ''true'' is returned immediately, and the ''iv'' is passed as an argument to the callback. | ||
|20898}} | |20898}} | ||
{{New items|3.0159|1.5.8| | |||
* ''rsa'' | |||
** '''encodedString''': the encoded string if successful, ''false'' otherwise. If a callback was provided, ''true'' is returned immediately, and the encoded string is passed as an argument to the callback. | |||
|21055}} | |||
==Example== | ==Example== |
Revision as of 14:28, 25 September 2022
This function encodes a string using the specified algorithm. The counterpart of this function is decodeString.
Tip: If it doesn't matter which algorithm you use for the encoding, keep in mind that aes128 uses hardware acceleration so it may outperform the tea algorithm on most processors. |
Syntax
string encodeString ( string algorithm, string input, table options [, function callback ] )
Required Arguments
- algorithm: The algorithm to use.
- input: The input to encode.
- 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 encode the input with.
- aes128 (Advanced Encryption Standard in CTR mode)
- key: a key to encode the input with (must be 16 characters long).
- rsa (Rivest-Shamir-Adleman in OAEP with SHA-1 mode)
- key: a public key to encode 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 for each algorithm
- tea
- encodedString: the encoded string if successful, false otherwise. If a callback was provided, true is returned immediately, and the encoded string is passed as an argument to the callback.
- aes128
- encodedString: the encoded string if successful, false otherwise. If a callback was provided, true is returned immediately, and the encoded string is passed as an argument to the callback.
- iv (Initialization vector): this is a string generated by the encryption algorithm that is needed to decrypt the message by decodeString. If a callback was provided, true is returned immediately, and the iv is passed as an argument to the callback.
- rsa
- encodedString: the encoded string if successful, false otherwise. If a callback was provided, true is returned immediately, and the encoded string is passed as an argument to the callback.
Example
Adds an /encode command in which you can provide an algorithm, key and data to encode. Below is the example provided as both server-side and client-side variations.
Click to collapse [-]
ServeraddCommandHandler("encode", function(player, _, algorithm, key, ...) if algorithm and key then local text = table.concat({...}, " ") if type(text) == "string" and text ~= "" then local encoded = encodeString(algorithm, text, { key = key }) if encoded then outputChatBox("The result of " .. algorithm .. " encoding is: " .. encoded, player) else outputChatBox("Failed to encode. 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
- base64Decode
- base64Encode
- 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