53 lines
1.9 KiB
Python
53 lines
1.9 KiB
Python
import traceback
|
|
from flask import jsonify
|
|
from framework import app
|
|
|
|
# 패키지
|
|
from .plugin import package_name, logger
|
|
from .model import ModelSetting
|
|
|
|
class SystemLogicToolDecrypt(object):
|
|
@staticmethod
|
|
def process_ajax(sub, req):
|
|
try:
|
|
if sub == 'crypt_test':
|
|
ret = SystemLogicToolDecrypt.crypt_test(req)
|
|
return jsonify(ret)
|
|
except Exception as exception:
|
|
logger.error('Exception:%s', exception)
|
|
logger.error(traceback.format_exc())
|
|
|
|
##########################################################################
|
|
|
|
@staticmethod
|
|
def crypt_test(req):
|
|
try:
|
|
mode = req.form['mode']
|
|
word = req.form['word']
|
|
|
|
logger.debug(mode)
|
|
logger.debug(word)
|
|
from tool_base import ToolAESCipher
|
|
mykey = None
|
|
if ModelSetting.get_bool('tool_crypt_use_user_key'):
|
|
mykey = ModelSetting.get('tool_crypt_user_key').lower().zfill(32)
|
|
if app.config['config']['is_py2']:
|
|
mykey = mykey.encode('utf8')
|
|
if len(mykey) > 32:
|
|
mykey = mykey[:32]
|
|
logger.debug(mykey)
|
|
|
|
if mode == 'encrypt':
|
|
ModelSetting.set('tool_crypt_encrypt_word', u'%s' % word)
|
|
ret = {'ret':'success', 'data':ToolAESCipher.encrypt(word, mykey=mykey)}
|
|
elif mode == 'decrypt':
|
|
ModelSetting.set('tool_crypt_decrypt_word', u'%s' % word)
|
|
ret = {'ret':'success', 'data':ToolAESCipher.decrypt(word, mykey=mykey).decode()}
|
|
|
|
logger.debug(ret)
|
|
return ret
|
|
except Exception as exception:
|
|
logger.error('Exception:%s', exception)
|
|
logger.error(traceback.format_exc())
|
|
return {'ret':'exception', 'data':str(exception)}
|