django生成ssh token 在內網運作吧。

2022-08-26 19:15:08 字數 2541 閱讀 7356

1.在前端生成ssh-token ----根據使用者名稱查詢是否有這個使用者,如果有 取得資料庫密碼(aes)  +時間段 進行加密碼(aes)

2.生成的ssk-token 一分鐘內有效 ,如果超過一分鐘則返回ssh 失敗

如果 一分鐘內,則使用者名稱與ssk-token 驗證通過

**:展示邏輯

1.前端

產生 ssh-token邏輯

1.前端

簡單地用aes+時間來生成串 防止密碼漏。

webssh專案修改handle.py

handle.py

from cryptodome.cipher import aes

from cryptodome import random

from binascii import b2a_hex ,  a2b_hex

import time

data:要加密的資料

key_16:金鑰

iv:金鑰向量

'''def encrypt(data,key_16,iv_16):

aes_length = 16

#iv = random.new().read(aes.block_size)

mycipher = aes.new(key_16, aes.mode_cfb, iv_16)

ciphertext = iv_16 + mycipher.encrypt(data.encode())

#print '加密後資料為:', b2a_hex(ciphertext)[16:]

#print '解密後資料為:', decrypttext.decode()

## 因為aes加密後的字串不一定是ascii字符集的,輸出儲存可能存在問題,所以這裡轉為16進製制字串

return b2a_hex(ciphertext)

'''aes解密

data加密資料 是b2a_hex 16進製制

key_16:金鑰

iv_16:金鑰向量

key_16 iv_16要與 加密 時用的一致

'''def decrypt(data,key_16,iv_16):

#print 'data:',len(data)

mydecrypt = aes.new(key_16, aes.mode_cfb, iv_16)

decrypttext = mydecrypt.decrypt(a2b_hex(data)[16:])

return  decrypttext.decode()

def get_args(self):

hostname = self.get_hostname()

port = self.get_port()

if isinstance(self.policy, paramiko.rejectpolicy):

self.lookup_hostname(hostname, port)

username = self.get_value('username')

password = self.get_argument('password', u'')

#xiao

if password:

#do not modify  this key_id and iv_16 contents

key_16 = b'aaaaajpszlvamkxh9'

iv_16 = b'bbbbbqdz1afuahi'

destr=decrypt(password,key_16,iv_16)

#print "all 解密後的資料:",destr

destr_arr=destr.split('@')

p_time=int(destr_arr[-1])

nowtime = int(time.time())

if nowtime - p_time >60:

raise valueerror('ssh token expired!!')

if len(destr_arr)>2:

password = ('@'.join(destr_arr[0:len(destr_arr)-1])).rstrip()

else:

password = destr_arr[0].rstrip()

# print "aaaaaaa:",password,str(p_time)

使用Django生成RSS

感謝django強大的syndication feed framework,我可以很輕鬆地實現rss的生成工作。fallever的rss可以從每個blog的右下角找到。django的官方文件見這裡。文件中的第乙個example並不適合我,fallever現在的情況是提供每個blogger乙個rss檔...

django生成遷移檔案

1.建立虛擬環境 在終端上輸入建立python3的虛擬環境 mkvirtualenv p python3 虛擬環境的名字 安裝django和pymysql 3.建表 在模組名下的models.py中建立乙個表 4.更改資料庫 在專案名的同名檔案下的settings.py中databases,改成 5...

Django 自動生成文件

老是忘 記錄下 coreapi pip install coreapi rest framework from rest framework.documentation import include docs urls urlpatterns url api include docs urls ti...