Difference between revisions of "Cryptography"
From GiderosMobile
| (4 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
| − | |||
<!-- GIDEROSOBJ:Cryptography --> | <!-- GIDEROSOBJ:Cryptography --> | ||
| − | ''' | + | '''Supported platforms:''' [[File:Platform android.png]][[File:Platform ios.png]][[File:Platform mac.png]][[File:Platform pc.png]][[File:Platform html5.png]][[File:Platform winrt.png]][[File:Platform win32.png]]<br/> |
| − | ''' | + | '''Available since:''' Gideros 2016.04<br/> |
| − | === | + | === Description === |
| − | + | Cryptographic primitives. | |
| + | |||
| + | === Example === | ||
| + | <syntaxhighlight lang="lua"> | ||
| + | local key = "GiderosGideros11" | ||
| + | local iv = "GiderosRules2023" | ||
| + | local paddingType = 1 | ||
| + | |||
| + | |||
| + | local function cryptCopy(src, dst) | ||
| + | local srcf = io.open(src, "rb") | ||
| + | local dstf = io.open(dst, "wb") | ||
| + | local size = 2^13 -- good buffer size (8K) | ||
| + | while true do | ||
| + | local block = srcf:read(size) | ||
| + | if not block then break end | ||
| + | block = Cryptography.aesEncrypt(block,key,iv,paddingType) | ||
| + | dstf:write(block) | ||
| + | end | ||
| + | srcf:close() | ||
| + | dstf:close() | ||
| + | end | ||
| + | |||
| + | local function decryptCopy(src, dst) | ||
| + | local srcf = io.open(src, "rb") | ||
| + | local dstf = io.open(dst, "wb") | ||
| + | local size = 2^13 + 16 -- good buffer size (8K + 16 for padding) | ||
| + | while true do | ||
| + | local block = srcf:read(size) | ||
| + | if not block then break end | ||
| + | block = Cryptography.aesDecrypt(block,key,iv,paddingType) | ||
| + | dstf:write(block) | ||
| + | end | ||
| + | srcf:close() | ||
| + | dstf:close() | ||
| + | end | ||
| + | |||
| + | cryptCopy ("|D|myfile.sqlite", "C:/tmp/myfile.crypt") | ||
| + | decryptCopy ("C:/tmp/myfile.crypt", "C:/tmp/myfile.sqlite") | ||
| + | </syntaxhighlight> | ||
{|- | {|- | ||
| style="width: 50%; vertical-align:top;"| | | style="width: 50%; vertical-align:top;"| | ||
| − | === | + | === Methods === |
| − | [[ | + | [[Cryptography.aesDecrypt]] ''decrypts an AES string''<br/><!--GIDEROSMTD:Cryptography.aesDecrypt(ciphertext,key,iv,paddingType) decrypts an AES string--> |
| − | [[ | + | [[Cryptography.aesEncrypt]] ''encrypts a string with AES''<br/><!--GIDEROSMTD:Cryptography.aesEncrypt(plaintext,key,iv,paddingType) encrypts a string with AES--> |
| − | [[Cryptography.b64]] ''Base64 encode some data''<br/><!-- GIDEROSMTD:Cryptography.b64(data) Base64 encode some data --> | + | [[Cryptography.b64]] ''Base64 encode some data''<br/><!--GIDEROSMTD:Cryptography.b64(data) Base64 encode some data--> |
| − | [[ | + | [[Cryptography.md5]] ''computes the MD5 hash of the input string''<br/><!--GIDEROSMTD:Cryptography.md5(input) computes the MD5 hash of the input string--> |
| − | [[Cryptography.unb64]] ''Base64 decode a string''<br/><!-- GIDEROSMTD:Cryptography.unb64(string) Base64 decode a string --> | + | [[Cryptography.pbkdf2]] ''Password-Based Key Derivation Function 2''<br/><!--GIDEROSMTD:Cryptography.pbkdf2(password,salt,iterations,outputLength) Password-Based Key Derivation Function 2--> |
| + | [[Cryptography.sha1]] ''sha1 encode some data''<br/><!--GIDEROSMTD:Cryptography.sha1(data) sha1 encode some data--> | ||
| + | [[Cryptography.unb64]] ''Base64 decode a string''<br/><!--GIDEROSMTD:Cryptography.unb64(string) Base64 decode a string--> | ||
| style="width: 50%; vertical-align:top;"| | | style="width: 50%; vertical-align:top;"| | ||
| − | === | + | === Events === |
| − | === | + | === Constants === |
|} | |} | ||
{{GIDEROS IMPORTANT LINKS}} | {{GIDEROS IMPORTANT LINKS}} | ||
Latest revision as of 19:40, 15 December 2023
Supported platforms: ![]()
![]()
![]()
![]()
![]()
![]()
![]()
Available since: Gideros 2016.04
Description
Cryptographic primitives.
Example
local key = "GiderosGideros11"
local iv = "GiderosRules2023"
local paddingType = 1
local function cryptCopy(src, dst)
local srcf = io.open(src, "rb")
local dstf = io.open(dst, "wb")
local size = 2^13 -- good buffer size (8K)
while true do
local block = srcf:read(size)
if not block then break end
block = Cryptography.aesEncrypt(block,key,iv,paddingType)
dstf:write(block)
end
srcf:close()
dstf:close()
end
local function decryptCopy(src, dst)
local srcf = io.open(src, "rb")
local dstf = io.open(dst, "wb")
local size = 2^13 + 16 -- good buffer size (8K + 16 for padding)
while true do
local block = srcf:read(size)
if not block then break end
block = Cryptography.aesDecrypt(block,key,iv,paddingType)
dstf:write(block)
end
srcf:close()
dstf:close()
end
cryptCopy ("|D|myfile.sqlite", "C:/tmp/myfile.crypt")
decryptCopy ("C:/tmp/myfile.crypt", "C:/tmp/myfile.sqlite")
MethodsCryptography.aesDecrypt decrypts an AES string |
EventsConstants |