环/课程/安全与互联网功能
外观
< 环
本章包含环编程语言提供的安全与互联网功能,用于哈希、加密和解密。在使用这些功能之前,请加载 openssllib.ring 库。
load "openssllib.ring"
- MD5()
- SHA1()
- SHA256()
- SHA512()
- SHA384()
- SHA224()
- 加密()
- 解密()
- Randbytes()
在使用这些功能之前,请加载 internetlib.ring 库。
load "internetlib.ring"
- 下载()
- 发送电子邮件()
我们可以使用 MD5() 函数计算 MD5 哈希值。
语法
MD5(cString) ---> String contains the MD5 hash of the string cString
示例
see "md5('happy') = " + md5("happy") + nl +
"md5('Hello') = " + md5("Hello") + nl
输出
md5('happy') = 56ab24c15b72a457069c5ea42fcfc640
md5('Hello') = 8b1a9953c4611296a827abf8c47804d7
我们可以使用 SHA1() 函数计算 SHA1 哈希值。
语法
SHA1(cString) ---> String contains the SHA1 hash of the string cString
示例
see "sha1('hello') : " + sha1("hello") + nl +
"sha1('apple') : " + sha1("apple") + nl
输出
sha1('hello') : aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
sha1('apple') : d0be2dc421be4fcd0172e5afceea3970e2f3d940
我们可以使用 SHA256() 函数计算 SHA256 哈希值。
语法
SHA256(cString) ---> String contains the SHA256 hash of the string cString
示例
see "sha256('hello') : " + sha256("hello") + nl +
"sha256('apple') : " + sha256("apple") + nl
输出
sha256('hello') : 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
sha256('apple') : 3a7bd3e2360a3d29eea436fcfb7e44c735d117c42d1c1835420b6b9942dd4f1b
我们可以使用 SHA512() 函数计算 SHA512 哈希值。
语法
SHA512(cString) ---> String contains the SHA512 hash of the string cString
示例
see "sha512('hello') : " + sha512("hello") + nl +
"sha512('apple') : " + sha512("apple") + nl +
"sha512('hello world') : " + sha512("hello world") + nl
输出
sha512('hello') : 9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673c
a72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043
sha512('apple') : 844d8779103b94c18f4aa4cc0c3b4474058580a991fba85d3ca698a0bc9e52
c5940feb7a65a3a290e17e6b23ee943ecc4f73e7490327245b4fe5d5efb590feb2
sha512('hello world') : 309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee511a7c7a9bcd3ca8
6d4cd86f989dd35bc5ff499670da34255b45b0cfd830e81f605dcf7dc5542e93ae9cd76f
我们可以使用 SHA384() 函数计算 SHA384 哈希值。
语法
SHA384(cString) ---> String contains the SHA384 hash of the string cString
示例
see "sha384('hello') : " + sha384("hello") + nl +
"sha384('apple') : " + sha384("apple") + nl +
"sha384('hello world') : " + sha384("hello world") + nl
输出
sha384('hello') : 59e1748777448c69de6b800d7a33bbfb9ff1b463e44354c3553bcdb9c666fa
90125a3c79f90397bdf5f6a13de828684f
sha384('apple') : 3d8786fcb588c93348756c6429717dc6c374a14f7029362281a3b21dc10250
ddf0d0578052749822eb08bc0dc1e68b0f
sha384('hello world') : fdbd8e75a67f29f701a4e040385e2e23986303ea10239211af907fcb
b83578b3e417cb71ce646efd0819dd8c088de1bd
我们可以使用 SHA224() 函数计算 SHA224 哈希值。
语法
SHA224(cString) ---> String contains the SHA224 hash of the string cString
示例
see "sha224('hello') : " + sha224("hello") + nl +
"sha224('apple') : " + sha224("apple") + nl +
"sha224('hello world') : " + sha224("hello world") + nl
输出
sha224('hello') : ea09ae9cc6768c50fcee903ed054556e5bfc8347907f12598aa24193
sha224('apple') : b7bbfdf1a1012999b3c466fdeb906a629caa5e3e022428d1eb702281
sha224('hello world') : 2f05477fc24bb4faefd86517156dafdecec45b8ad3cf2522a563582b
我们可以使用 Encrypt() 函数使用 Blowfish 算法加密数据。
语法
Encrypt(cString, cKey, cIV) ---> Encrypted string
我们可以使用 Decrypt() 函数解密使用 Encrypt() 函数加密的数据。
语法
Decrypt(cCipher, cKey, cIV) ---> Decrypted string
以下示例演示如何使用 Encrypt() 和 Decrypt() 函数。
这些函数使用 Blowfish 算法。
See "Enter a string : " give cStr
list = 0:15 cKey="" for x in list cKey += char(x) next
list = 1:8 cIV = "" for x in list cIV += char(x) next
cStr = Encrypt(cStr,cKey,cIV)
See "Cipher Text : " + cStr + nl +
"Plain Text : " + Decrypt(cStr,cKey,cIV) + nl
以下示例演示如何计算文件的哈希函数。
cStr = read("myapp.exe")
see "Size : " + len(cStr) + nl +
"md5 : " + md5(cStr) + nl +
"sha1 : " + sha1(cStr) + nl +
"sha256 : " + sha256(cStr) + nl +
"sha224 : " + sha224(cStr) + nl +
"sha384 : " + sha384(cStr) + nl +
"sha512 : " + sha512(cStr) + nl
输出
Size : 58079876
md5 : 762eee15d8d2fd73b71ea52538b28667
sha1 : 9212c0c7258bad89a62bd239e1358a9276a9d070
sha256 : 7d6724e69b6c553da749ba31b6185dddc965129b64d9e9bf3de88f67df3b1cdc
sha224 : 5a9c8a7d662bce4f880ba94f90a79362b672528b9efd5abc718c7a3d
sha384 : 18e23f973abedbeb3981c423f12aeadecf96f9c6fb28aeabe3be4c484f8540afcc3861b
b370ce2b59cf3c99c130b856b
sha512 : da3d5e997d06f8b2a7a9964b77f7d82eedb76b245c611082c1639f83f51d83880bcd08f
cd53dcab1167bdca0b82fec5071971ac17c76479d76985ced4ab0d18e
我们可以使用 Randbytes() 函数生成伪随机字节字符串。
语法
Randbytes(nSize) ---> String contains random bytes (bytes count = nSize)
示例
salt = randbytes(32)
password = "SecretPassWord@$%123"
see salt + nl
see sha256("test" + salt) + nl
语法
Download(cURL) ---> String contains the server response
示例
cStr= download("http://doublesvsoop.sourceforge.net/")
see cStr
write("download.txt",cStr)
语法
SendEmail(cSMTPServer,cEmail,cPassword,cSender,cReceiver,cCC,cTitle,cContent)
示例
See "Send email..." + nl
sendemail("smtp://smtp.gmail.com:587",
"[email protected]",
"password",
"[email protected]",
"[email protected]",
"[email protected]",
"Sending email from Ring",
"Hello
How are you?
Are you fine?
Thank you!
Greetings,
Mahmoud")
see "Done.." + nl