Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
Tags
- selinux port 등록
- regex_search
- c3 초
- linux시간으로 변경
- InfluxDB
- c++ 정규식
- snmp test
- semanage
- gcc 업데이트
- g++ 업데이트
- c3 축 가리기
- python popen
- python subprocess
- c3 축 없애기
- snmp
- subporcess path
- 1697
- grafana dashboard
- 정규식 컴파일
- CentOS7
- 백준
- gcc regex
- 정규식 문자열 출력
- centos pyhon 설치
- 정규식 활용
- telegraf
- c3 second
- python os
- influxdb 설치
- c3 step graph
Archives
- Today
- Total
리셋 되지 말자
[websocket] Sec-WebSocket-Key 변환 본문
def handshake(client):
request = client.recv(2048)
p=re.compile('Sec-WebSocket-Key: (.*)\\r')
m = p.search(request.decode())
#key = m.group(1)+'258EAFA5-E914-47DA-95CA-C5AB0DC85B11'
key = 'dGhlIHNhbXBsZSBub25jZQ=='+'258EAFA5-E914-47DA-95CA-C5AB0DC85B11'
h=hashlib.sha1()
h.update(key.encode())
#sh1_key = hashlib.sha1().digest()
base64_key = base64.b64encode(h.digest())
print(base64_key.decode())
response = "HTTP/1.1 101 Switching Protocols\r\n"+\
"Upgrade: websocket\r\n"+\
"Connection: Upgrade\r\n"+\
"Sec-WebSocket-Accept: %s\r\n"+\
"\r\n"
client로부터 정보를 받고, 정규식으로 Sec-WebSocket-Key만 추출한다.
https://developer.mozilla.org/ko/docs/WebSockets/Writing_WebSocket_servers 사이트에 예제인
'dGhlIHNhbXBsZSBub25jZQ=='+'258EAFA5-E914-47DA-95CA-C5AB0DC85B11' 을 key로 하여, sha1 및 base64encode 한다.
결과로 's3pPLMBiTxaQ9kYGzzhZRbK+xOo=' 가 나왔다. 성공!! ㅠㅠㅠㅠㅠㅠㅠㅠ
'websocket' 카테고리의 다른 글
websocket을 이용한 python server에 대용량 파일 전송하기 (0) | 2020.05.06 |
---|---|
websocket client, socket server source code (0) | 2020.04.21 |
websocket 공부 (0) | 2020.04.10 |
websocket 상세 설명 글 (0) | 2020.04.10 |
Comments