티스토리 뷰
1. 원본 문자열을 컨버팅 하고 그것을 A 라고 칭함
> 컨버팅: 해시(hex) > 2진수 변환
2. 원본 문자열 에서 순차적으로 순회하면서 알파벳일때만 바로 다음(a>b, b>c) 로 변환한다.
> 단 다음이 없는 경우는 바로 이전것으로 변환한다. (z > y)
3. 2번을 컨버팅 한것 하나 하나가 B 이라고 칭하고 A 와 모든 B들을 하나하나 XOR 연산을 한다.
4. XOR 연산을 한 결과들을 그래프로 그린다.
def to_hash(string):
import hashlib
encode_str = string.encode()
return hashlib.sha1(encode_str).hexdigest()
def to_bin(hex_str):
return bin(int(hex_str, 16))
def to_xor(a, b):
return bin(int(a, 2) ^ int(b, 2))
def convert(string):
return to_bin(to_hash(string))
def get_next(char, step=1):
token = "abcdefghijklmnopqrstuvwxyz"
char = char.lower()
if char in token:
index = token.index(char)
if index + step < len(token):
return token[index+step]
else:
return token[index-step]
return ""
def cal(string):
ori = convert(string)
dst_strs = []
xor_difs = []
for i, char in enumerate(string):
if char.isalpha():
next_char = get_next(char)
temp = string[:i] + next_char + string[i + 1:]
dst_strs.append(temp)
dst = convert(temp)
xor = to_xor(ori, dst)
xor_difs.append(xor)
print(f"{i} {char}>{next_char} {temp}")
print(f"ori={ori}\ndst={dst}\nxor={xor}")
return dst_strs, xor_difs
def draw(title, x, y):
import plotly
from plotly.graph_objs import Scatter, Layout
plotly.offline.plot({
"data": [Scatter(x=x, y=y)],
"layout": Layout(title=title)
})
s = "a#bee#zoo#apple#lion"
attr, xor = cal(s)
draw(title=s, x=attr, y=xor)
'python lecture > project' 카테고리의 다른 글
[python] 주문시스템 (0) | 2020.05.09 |
---|---|
[blockchain] 블록체인 예제 (0) | 2020.05.07 |
[edu] 연락처 (class, 연산자 오버로드) (0) | 2020.03.16 |
[edu] pillow (영상 처리) (0) | 2019.03.19 |
[edu] sqlite3 import/export to csv (0) | 2019.02.07 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 모바일 스킨 적용
- GIT
- django
- 면접답변
- 문과 코딩
- gitlab
- 이미지 비교
- Tistory
- 파이썬 강좌
- wsgi
- Python
- pycrypto
- virtualenv
- 파이썬 프로그래밍
- 장고 플러스친구 자동응답
- django chatbot
- 엑셀 비교
- 문서 비교
- admin.py
- 모바일 테마 적용
- 파이썬 입문
- 플러스친구 자동응답
- 장고
- 장고 카톡 자동응답
- gitignore
- chatbot
- PuTTYGen
- 면접정답
- 파이썬 독학
- 파이썬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함