2 single: セキュリティとインターネット関数; はじめに
4 ================================
6 ================================
8 ハッシュ、暗号化、および復号化に関するセキュリティとインターネット関数について説明します。
10 この関数の使用前に openssllib.ring ライブラリを読み込みます。
14 load "openssllib.ring"
27 この関数の使用前に internetlib.ring ライブラリを読み込みます。
31 load "internetlib.ring"
38 pair: セキュリティとインターネット関数; MD5()
43 MD5() 関数は MD5 ハッシュ値を計算します。
49 MD5(cString) ---> 文字列 cString の MD5 ハッシュ値を有する文字列です。
55 see "md5('happy') = " + md5("happy") + nl +
56 "md5('Hello') = " + md5("Hello") + nl
62 md5('happy') = 56ab24c15b72a457069c5ea42fcfc640
63 md5('Hello') = 8b1a9953c4611296a827abf8c47804d7
66 pair: セキュリティとインターネット関数; SHA1()
71 SHA1() 関数は SHA1 ハッシュ値を計算します。
77 SHA1(cString) ---> 文字列 cString の SHA1 ハッシュ値を有する文字列です。
83 see "sha1('hello') : " + sha1("hello") + nl +
84 "sha1('apple') : " + sha1("apple") + nl
90 sha1('hello') : aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
91 sha1('apple') : d0be2dc421be4fcd0172e5afceea3970e2f3d940
94 pair: セキュリティとインターネット関数; SHA256()
99 SHA256() 関数は SHA256 ハッシュ値を計算します。
105 SHA256(cString) ---> 文字列 cString の SHA256 ハッシュ値を有する文字列です。
112 see "sha256('hello') : " + sha256("hello") + nl +
113 "sha256('apple') : " + sha256("apple") + nl
119 sha256('hello') : 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
120 sha256('apple') : 3a7bd3e2360a3d29eea436fcfb7e44c735d117c42d1c1835420b6b9942dd4f1b
123 pair: セキュリティとインターネット関数; SHA512()
128 SHA512() 関数は SHA512 ハッシュ値を計算します。
134 SHA512(cString) ---> 文字列 cString の SHA512 ハッシュ値を有する文字列です。
140 see "sha512('hello') : " + sha512("hello") + nl +
141 "sha512('apple') : " + sha512("apple") + nl +
142 "sha512('hello world') : " + sha512("hello world") + nl
148 sha512('hello') : 9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673c
149 a72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043
150 sha512('apple') : 844d8779103b94c18f4aa4cc0c3b4474058580a991fba85d3ca698a0bc9e52
151 c5940feb7a65a3a290e17e6b23ee943ecc4f73e7490327245b4fe5d5efb590feb2
152 sha512('hello world') : 309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee511a7c7a9bcd3ca8
153 6d4cd86f989dd35bc5ff499670da34255b45b0cfd830e81f605dcf7dc5542e93ae9cd76f
156 pair: セキュリティとインターネット関数; SHA384()
162 SHA384() 関数は SHA384 ハッシュ値を計算します。
168 SHA384(cString) ---> 文字列 cString の SHA384 ハッシュ値を有する文字列です。
174 see "sha384('hello') : " + sha384("hello") + nl +
175 "sha384('apple') : " + sha384("apple") + nl +
176 "sha384('hello world') : " + sha384("hello world") + nl
182 sha384('hello') : 59e1748777448c69de6b800d7a33bbfb9ff1b463e44354c3553bcdb9c666fa
183 90125a3c79f90397bdf5f6a13de828684f
184 sha384('apple') : 3d8786fcb588c93348756c6429717dc6c374a14f7029362281a3b21dc10250
185 ddf0d0578052749822eb08bc0dc1e68b0f
186 sha384('hello world') : fdbd8e75a67f29f701a4e040385e2e23986303ea10239211af907fcb
187 b83578b3e417cb71ce646efd0819dd8c088de1bd
190 pair: セキュリティとインターネット関数; SHA224()
195 SHA224() 関数は SHA224 ハッシュ値を計算します。
201 SHA224(cString) ---> 文字列 cString の SHA224 ハッシュ値を有する文字列です。
207 see "sha224('hello') : " + sha224("hello") + nl +
208 "sha224('apple') : " + sha224("apple") + nl +
209 "sha224('hello world') : " + sha224("hello world") + nl
215 sha224('hello') : ea09ae9cc6768c50fcee903ed054556e5bfc8347907f12598aa24193
216 sha224('apple') : b7bbfdf1a1012999b3c466fdeb906a629caa5e3e022428d1eb702281
217 sha224('hello world') : 2f05477fc24bb4faefd86517156dafdecec45b8ad3cf2522a563582b
220 pair: セキュリティとインターネット関数; Encrypt()
225 Encrypt() 関数は Blowfish アルゴリズム法でデータを暗号化します。
231 Encrypt(cString, cKey, cIV) ---> 暗号化された文字列
234 pair: セキュリティとインターネット関数; Decrypt()
239 Decrypt() 関数は Encrypt() 関数で暗号化されたデータを復号化します。
245 Decrypt(cCipher, cKey, cIV) ---> 復号化された文字列
248 pair: セキュリティとインターネット関数; 用例
253 この用例は Encrypt() および Decrypt() 関数の用法です。
255 いずれの関数も Blowfish アルゴリズム法を使用しています。
259 See "Enter a string : " give cStr
260 list = 0:15 cKey="" for x in list cKey += char(x) next
261 list = 1:8 cIV = "" for x in list cIV += char(x) next
262 cStr = Encrypt(cStr,cKey,cIV)
263 See "Cipher Text : " + cStr + nl +
264 "Plain Text : " + Decrypt(cStr,cKey,cIV) + nl
266 通常の for ループで同じ用例を記述できます。
270 See "Enter a string : " give cStr
283 cStr = Encrypt(cStr,cKey,cIV)
284 See "Cipher Text : " + cStr + nl +
285 "Plain Text : " + Decrypt(cStr,cKey,cIV) + nl
287 また、文字列でパスワードと IV を直接記述することもできます。
291 See "Enter a string : " give cStr
293 # 注意: 推測されやすく暗号強度の低い単純なパスワードを使用しないでください!
294 cKey = "1234567890@#$%^&"
297 cStr = Encrypt(cStr,cKey,cIV)
298 See "Cipher Text : " + cStr + nl +
299 "Plain Text : " + Decrypt(cStr,cKey,cIV) + nl
303 pair: セキュリティとインターネット関数; ファイルのハッシュ
308 この用例はハッシュ関数でファイルのハッシュ値を計算する方法です。
312 cStr = read("myapp.exe")
313 see "Size : " + len(cStr) + nl +
314 "md5 : " + md5(cStr) + nl +
315 "sha1 : " + sha1(cStr) + nl +
316 "sha256 : " + sha256(cStr) + nl +
317 "sha224 : " + sha224(cStr) + nl +
318 "sha384 : " + sha384(cStr) + nl +
319 "sha512 : " + sha512(cStr) + nl
326 md5 : 762eee15d8d2fd73b71ea52538b28667
327 sha1 : 9212c0c7258bad89a62bd239e1358a9276a9d070
328 sha256 : 7d6724e69b6c553da749ba31b6185dddc965129b64d9e9bf3de88f67df3b1cdc
329 sha224 : 5a9c8a7d662bce4f880ba94f90a79362b672528b9efd5abc718c7a3d
330 sha384 : 18e23f973abedbeb3981c423f12aeadecf96f9c6fb28aeabe3be4c484f8540afcc3861b
331 b370ce2b59cf3c99c130b856b
332 sha512 : da3d5e997d06f8b2a7a9964b77f7d82eedb76b245c611082c1639f83f51d83880bcd08f
333 cd53dcab1167bdca0b82fec5071971ac17c76479d76985ced4ab0d18e
336 pair: セキュリティとインターネット関数; RandBytes()
341 Randbytes() 関数は擬似乱数バイト列を生成します。
347 Randbytes(nSize) ---> 文字列は乱数のバイト列を有しています (バイト列数 = nSize)。
354 password = "SecretPassWord@$%123"
356 see sha256("test" + salt) + nl
359 pair: セキュリティとインターネット関数; Download()
364 指定された URL からファイルをダウンロードします。
370 Download(cURL) ---> 文字列はサーバーの応答を有しています。
376 cStr= download("http://doublesvsoop.sourceforge.net/")
378 write("download.txt",cStr)
381 pair: セキュリティとインターネット関数; SendEmail()
392 SendEmail(cSMTPServer,cEmail,cPassword,cSender,cReceiver,cCC,cTitle,cContent)
398 See "Send email..." + nl
399 sendemail("smtp://smtp.gmail.com:587",
403 "somebody@yahoo.com",
404 "somebodyelse@yahoo.com",
405 "Sending email from Ring",