Files
Terrarum/work_files/Tools/crypto-hangul.py
Song Minjae b759f0e5e1 Collision detector fixing on going, hangul combining (johab) font
Former-commit-id: d225fb399ea7ca6c80da1fa35db3c13a1505f1cc
Former-commit-id: e218312c567bb7b2ea30961076e8bd24a8f2c131
2016-03-02 14:30:44 +09:00

127 lines
1.8 KiB
Python

# encoding: utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf8')
def encrypt(ch):
base = 0xAC00
if ord(ch) == 0x20:
return ''
if ord(ch) < 0xAC00 or ord(ch) > 0xD7A3:
return ''
crypt_initials = [
'',
'거거',
'',
'',
'자자',
'',
'',
'',
'러러',
'',
'구구',
'', # ㅇ
'',
'저저',
'',
'',
'',
'',
''
]
crypt_medians = [
'',
'',
'',
'',
'',
'',
'',
'',
'',
'므그',
'므지',
'므미',
'',
'',
'드리',
'드르',
'드미',
'',
'',
'',
''
]
crypt_finals = [
'', # x
'', # ㄱ
'더더',
'더오',
'',
'어무',
'어아',
'',
'',
'보더',
'보버',
'보다',
'보오',
'보부',
'보우',
'보아',
'',
'',
'다오',
'',
'',
'',
'',
'',
'',
'',
'',
''
]
key = ord(ch) - base
size_f = len(crypt_finals)
size_m = len(crypt_medians)
initial = key / (size_m * size_f)
median = (key / size_f) % size_m
final = key % size_f
return crypt_initials[initial] + crypt_medians[median] + crypt_finals[final]
plainmsg = u'''동해 물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세
남산 위에 저 소나무 철갑을 두른 듯 바람서리 불변함은 우리 기상일세
가을 하늘 공활한데 높고 구름 없이 밝은 달은 우리 가슴 일편단심일세
무궁화 삼천리 화려강산 대한 사람 대한으로 길이 보전하세'''
cryptmsg = []
width = 24
for i in range(len(plainmsg)):
crypted = unicode(encrypt(plainmsg[i]))
for j in range(len(crypted)):
cryptmsg.append(crypted[j])
for i in range(len(cryptmsg)):
if i % width == 0 and i > 0:
sys.stdout.write("\n")
sys.stdout.write(cryptmsg[i])
sys.stdout.write("\n")