@@ -17,9 +17,8 @@ msgstr ""
1717"Generated-By : Babel 2.17.0\n "
1818
1919#: ../../library/secrets.rst:2
20- #, fuzzy
2120msgid ":mod:`!secrets` --- Generate secure random numbers for managing secrets"
22- msgstr ":mod:`secrets` --- 비밀 관리를 위한 안전한 난수 생성"
21+ msgstr ":mod:`! secrets` --- 비밀 관리를 위한 안전한 난수 생성"
2322
2423#: ../../library/secrets.rst:16
2524msgid "**Source code:** :source:`Lib/secrets.py`"
@@ -67,19 +66,16 @@ msgstr ""
6766":class:`random.SystemRandom`\\ 를 참조하십시오."
6867
6968#: ../../library/secrets.rst:47
70- #, fuzzy
7169msgid "Return a randomly chosen element from a non-empty sequence."
7270msgstr "비어있지 않은 시퀀스로부터 무작위로 선택된 요소를 돌려줍니다."
7371
7472#: ../../library/secrets.rst:51
75- #, fuzzy
7673msgid "Return a random int in the range [0, *exclusive_upper_bound*)."
77- msgstr "범위 [0, *n *)에서 무작위 int를 돌려줍니다."
74+ msgstr "범위 [0, *exclusive_upper_bound *)에서 무작위 int를 돌려줍니다."
7875
7976#: ../../library/secrets.rst:55
80- #, fuzzy
8177msgid "Return a non-negative int with *k* random bits."
82- msgstr "*k* 무작위 비트를 가지는 int를 돌려줍니다."
78+ msgstr "*k* 무작위 비트를 가지는 음이 아닌 int를 돌려줍니다."
8379
8480#: ../../library/secrets.rst:59
8581msgid "Generating tokens"
@@ -107,6 +103,8 @@ msgid ""
107103">>> token_bytes(16)\n"
108104"b'\\ xebr\\ x17D*t\\ xae\\ xd4\\ xe3S\\ xb6\\ xe2\\ xebP1\\ x8b'"
109105msgstr ""
106+ ">>> token_bytes(16)\n"
107+ "b'\\ xebr\\ x17D*t\\ xae\\ xd4\\ xe3S\\ xb6\\ xe2\\ xebP1\\ x8b'"
110108
111109#: ../../library/secrets.rst:79
112110msgid ""
@@ -122,6 +120,8 @@ msgid ""
122120">>> token_hex(16)\n"
123121"'f9bf78b9a18ce6d46a0cd2b0b86df9da'"
124122msgstr ""
123+ ">>> token_hex(16)\n"
124+ "'f9bf78b9a18ce6d46a0cd2b0b86df9da'"
125125
126126#: ../../library/secrets.rst:90
127127msgid ""
@@ -139,6 +139,8 @@ msgid ""
139139">>> token_urlsafe(16)\n"
140140"'Drmhze6EPcv0fN_81Bj-nA'"
141141msgstr ""
142+ ">>> token_urlsafe(16)\n"
143+ "'Drmhze6EPcv0fN_81Bj-nA'"
142144
143145#: ../../library/secrets.rst:102
144146msgid "How many bytes should tokens use?"
@@ -186,17 +188,17 @@ msgid "Other functions"
186188msgstr "기타 함수"
187189
188190#: ../../library/secrets.rst:131
189- #, fuzzy
190191msgid ""
191192"Return ``True`` if strings or :term:`bytes-like objects <bytes-like "
192193"object>` *a* and *b* are equal, otherwise ``False``, using a \" constant-"
193194"time compare\" to reduce the risk of `timing attacks "
194195"<https://codahale.com/a-lesson-in-timing-attacks/>`_. See "
195196":func:`hmac.compare_digest` for additional details."
196197msgstr ""
197- "문자열 *a*\\ 와 *b*\\ 가 같으면 ``True``\\ 를, 그렇지 않으면 ``False``\\ 를 반환하는데, `타이밍 공격 "
198- "<https://codahale.com/a-lesson-in-timing-attacks/>`_\\ 의 위험을 줄이는 방식을 "
199- "사용합니다. 자세한 내용은 :func:`hmac.compare_digest`\\ 를 참조하십시오."
198+ "문자열 혹은 :term:`바이트열류 객체 <bytes-like object>` *a*\\ 와 *b*\\ 가 같으면 "
199+ "``True``\\ 를, 그렇지 않으면 ``False``\\ 를 반환하는데, \" 고정 시간 비교(constant-time "
200+ "compare)\" 를 사용하여 `타이밍 공격 <https://codahale.com/a-lesson-in-timing-"
201+ "attacks/>`_\\ 의 위험을 줄입니다. 자세한 내용은 :func:`hmac.compare_digest`\\ 를 참조하십시오."
200202
201203#: ../../library/secrets.rst:140
202204msgid "Recipes and best practices"
@@ -219,18 +221,20 @@ msgid ""
219221"alphabet = string.ascii_letters + string.digits\n"
220222"password = ''.join(secrets.choice(alphabet) for i in range(8))"
221223msgstr ""
224+ "import string\n"
225+ "import secrets\n"
226+ "alphabet = string.ascii_letters + string.digits\n"
227+ "password = ''.join(secrets.choice(alphabet) for i in range(8))"
222228
223229#: ../../library/secrets.rst:157
224- #, fuzzy
225230msgid ""
226231"Applications should not :cwe:`store passwords in a recoverable format "
227232"<257>`, whether plain text or encrypted. They should be salted and "
228233"hashed using a cryptographically strong one-way (irreversible) hash "
229234"function."
230235msgstr ""
231- "응용 프로그램은 평문인지 암호문인지 관계없이, `암호를 복원 가능한 형식으로 저장 "
232- "<http://cwe.mitre.org/data/definitions/257.html>`_\\ 해서는 안 됩니다. 이들은 암호학적으로"
233- " 강력한 단방향(비가역적) 해시 함수를 사용하여 솔트되고 해시 되어야 합니다."
236+ "응용 프로그램은 평문인지 암호문인지 관계없이, :cwe:`암호를 복원 가능한 형식으로 저장 <257>`\\ 해서는 안 됩니다. 이들은"
237+ " 암호학적으로 강력한 단방향(비가역적) 해시 함수를 사용하여 솔트되고 해시 되어야 합니다."
234238
235239#: ../../library/secrets.rst:163
236240msgid ""
@@ -251,6 +255,15 @@ msgid ""
251255" and sum(c.isdigit() for c in password) >= 3):\n"
252256" break"
253257msgstr ""
258+ "import string\n"
259+ "import secrets\n"
260+ "alphabet = string.ascii_letters + string.digits\n"
261+ "while True:\n"
262+ " password = ''.join(secrets.choice(alphabet) for i in range(10))\n"
263+ " if (any(c.islower() for c in password)\n"
264+ " and any(c.isupper() for c in password)\n"
265+ " and sum(c.isdigit() for c in password) >= 3):\n"
266+ " break"
254267
255268#: ../../library/secrets.rst:180
256269msgid "Generate an `XKCD-style passphrase <https://xkcd.com/936/>`_:"
@@ -265,6 +278,12 @@ msgid ""
265278" words = [word.strip() for word in f]\n"
266279" password = ' '.join(secrets.choice(words) for i in range(4))"
267280msgstr ""
281+ "import secrets\n"
282+ "# 표준 리눅스 시스템에서는, 편리한 딕셔너리 파일을 사용하십시오.\n"
283+ "# 다른 플랫폼에서는, 자신의 단어 목록을 제공해야 할 수도 있습니다.\n"
284+ "with open('/usr/share/dict/words') as f:\n"
285+ " words = [word.strip() for word in f]\n"
286+ " password = ' '.join(secrets.choice(words) for i in range(4))"
268287
269288#: ../../library/secrets.rst:192
270289msgid ""
@@ -277,4 +296,6 @@ msgid ""
277296"import secrets\n"
278297"url = 'https://example.com/reset=' + secrets.token_urlsafe()"
279298msgstr ""
299+ "import secrets\n"
300+ "url = 'https://example.com/reset=' + secrets.token_urlsafe()"
280301
0 commit comments