拍爱

encrypt_views.py 1.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. # -*- coding: utf-8 -*-
  2. from __future__ import division
  3. import json
  4. import random
  5. from django_logit import logit
  6. from django_response import response
  7. from mch.models import BrandInfo, ModelImageInfo, ModelInfo
  8. from utils.algorithm.b64 import b64_decrypt, b64_encrypt
  9. from utils.algorithm.rsalg import rsa_decrypt, rsa_encrypt
  10. # CIPHER_ALGORITHM = ('B64', 'RSA')
  11. CIPHER_ALGORITHM = ('B64', )
  12. CIPHER_PREFIX = {
  13. 'B64': 'alg1',
  14. 'RSA': 'alg2',
  15. }
  16. @logit(res=True)
  17. def encrypt(request):
  18. plaintext = request.POST.get('plaintext', '')
  19. alg = random.choice(CIPHER_ALGORITHM)
  20. if alg == 'B64':
  21. ciphertext = b64_encrypt(plaintext)
  22. elif alg == 'RSA':
  23. ciphertext = rsa_encrypt(plaintext)
  24. else:
  25. ciphertext = plaintext
  26. return response(200, data={
  27. 'ciphertext': u'%s+%s' % (CIPHER_PREFIX.get(alg, ''), ciphertext),
  28. })
  29. @logit(res=True)
  30. def decrypt(request):
  31. ciphertext = request.POST.get('ciphertext', '')
  32. alg, ciphertext = ciphertext.split('+', 1)
  33. if alg == CIPHER_PREFIX['B64']:
  34. plaintext = b64_decrypt(ciphertext)
  35. elif alg == CIPHER_PREFIX['RSA']:
  36. plaintext = rsa_decrypt(ciphertext)
  37. else:
  38. plaintext = ciphertext
  39. infos = json.loads(plaintext)
  40. Brand = infos.get('Brand', '')
  41. Model = infos.get('Model', '')
  42. try:
  43. logo_url = BrandInfo.objects.get(brand_name=Brand).brand_logo_url
  44. except BrandInfo.DoesNotExist:
  45. logo_url = ''
  46. try:
  47. model_imgs = ModelInfo.objects.get(model_name=Model).images
  48. except ModelInfo.DoesNotExist:
  49. model_imgs = []
  50. return response(200, data={
  51. 'plaintext': plaintext,
  52. 'logo_url': logo_url,
  53. 'model_imgs': model_imgs,
  54. })