1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- from __future__ import division
- import random
- from django_response import response
- from logit import logit
- from mch.models import BrandInfo, ModelImageInfo, ModelInfo
- from utils.algorithm.b64 import b64_decrypt, b64_encrypt
- from utils.algorithm.caesar import caesar_decrypt, caesar_encrypt
- from utils.algorithm.rsalg import rsa_decrypt, rsa_encrypt
- CIPHER_ALGORITHM = ('CAESAR', )
- CIPHER_PREFIX = {
- 'CAESAR': '0',
- 'B64': '1',
- 'RSA': '2',
- }
- @logit(res=True)
- def encrypt(request):
- plaintext = request.POST.get('plaintext', '')
- alg = random.choice(CIPHER_ALGORITHM)
- if alg == 'CAESAR':
- ciphertext = caesar_encrypt(plaintext)
- elif alg == 'B64':
- ciphertext = b64_encrypt(plaintext)
- elif alg == 'RSA':
- ciphertext = rsa_encrypt(plaintext)
- else:
- ciphertext = plaintext
- return response(200, data={
- 'ciphertext': u'%s+%s' % (CIPHER_PREFIX.get(alg, ''), ciphertext),
- })
- @logit(res=True)
- def decrypt(request):
- ciphertext = request.POST.get('ciphertext', '')
- alg, ciphertext = ciphertext.split('+', 1)
- if alg == CIPHER_PREFIX['CAESAR']:
- plaintext = caesar_decrypt(ciphertext)
- elif alg == CIPHER_PREFIX['B64']:
- plaintext = b64_decrypt(ciphertext)
- elif alg == CIPHER_PREFIX['RSA']:
- plaintext = rsa_decrypt(ciphertext)
- else:
- plaintext = ciphertext
-
-
- brand_pk, model_pk, distributor_pk, sn, time = plaintext.split('#')
- try:
- logo_url = BrandInfo.objects.get(pk=brand_pk).brand_logo_url
- except BrandInfo.DoesNotExist:
- logo_url = ''
- try:
- model_imgs = ModelInfo.objects.get(pk=model_pk).images
- except ModelInfo.DoesNotExist:
- model_imgs = []
- return response(200, data={
- 'plaintext': plaintext,
- 'logo_url': logo_url,
- 'model_imgs': model_imgs,
- })
|