@@ -2,7 +2,6 @@  | 
            ||
| 2 | 2 | 
                 | 
            
| 3 | 3 | 
                from __future__ import division  | 
            
| 4 | 4 | 
                 | 
            
| 5 | 
                -import json  | 
            |
| 6 | 5 | 
                import random  | 
            
| 7 | 6 | 
                 | 
            
| 8 | 7 | 
                from django_response import response  | 
            
                @@ -10,13 +9,15 @@ from logit import logit  | 
            ||
| 10 | 9 | 
                 | 
            
| 11 | 10 | 
                from mch.models import BrandInfo, ModelImageInfo, ModelInfo  | 
            
| 12 | 11 | 
                from utils.algorithm.b64 import b64_decrypt, b64_encrypt  | 
            
| 12 | 
                +from utils.algorithm.caesar import caesar_decrypt, caesar_encrypt  | 
            |
| 13 | 13 | 
                from utils.algorithm.rsalg import rsa_decrypt, rsa_encrypt  | 
            
| 14 | 14 | 
                 | 
            
| 15 | 15 | 
                 | 
            
| 16 | 
                -# CIPHER_ALGORITHM = ('B64', 'RSA')
               | 
            |
| 17 | 
                -CIPHER_ALGORITHM = ('B64', )
               | 
            |
| 16 | 
                +# CIPHER_ALGORITHM = ('CAESAR', 'B64', 'RSA')
               | 
            |
| 17 | 
                +CIPHER_ALGORITHM = ('CAESAR', 'B64')
               | 
            |
| 18 | 18 | 
                 | 
            
| 19 | 19 | 
                 CIPHER_PREFIX = {
               | 
            
| 20 | 
                + 'CAESAR': '0',  | 
            |
| 20 | 21 | 
                'B64': '1',  | 
            
| 21 | 22 | 
                'RSA': '2',  | 
            
| 22 | 23 | 
                }  | 
            
                @@ -28,7 +29,9 @@ def encrypt(request):  | 
            ||
| 28 | 29 | 
                 | 
            
| 29 | 30 | 
                alg = random.choice(CIPHER_ALGORITHM)  | 
            
| 30 | 31 | 
                 | 
            
| 31 | 
                - if alg == 'B64':  | 
            |
| 32 | 
                + if alg == 'CAESAR':  | 
            |
| 33 | 
                + ciphertext = caesar_encrypt(plaintext)  | 
            |
| 34 | 
                + elif alg == 'B64':  | 
            |
| 32 | 35 | 
                ciphertext = b64_encrypt(plaintext)  | 
            
| 33 | 36 | 
                elif alg == 'RSA':  | 
            
| 34 | 37 | 
                ciphertext = rsa_encrypt(plaintext)  | 
            
                @@ -46,7 +49,9 @@ def decrypt(request):  | 
            ||
| 46 | 49 | 
                 | 
            
| 47 | 50 | 
                     alg, ciphertext = ciphertext.split('+', 1)
               | 
            
| 48 | 51 | 
                 | 
            
| 49 | 
                - if alg == CIPHER_PREFIX['B64']:  | 
            |
| 52 | 
                + if alg == CIPHER_PREFIX['CAESAR']:  | 
            |
| 53 | 
                + plaintext = caesar_decrypt(ciphertext)  | 
            |
| 54 | 
                + elif alg == CIPHER_PREFIX['B64']:  | 
            |
| 50 | 55 | 
                plaintext = b64_decrypt(ciphertext)  | 
            
| 51 | 56 | 
                elif alg == CIPHER_PREFIX['RSA']:  | 
            
| 52 | 57 | 
                plaintext = rsa_decrypt(ciphertext)  | 
            
                @@ -0,0 +1,22 @@  | 
            ||
| 1 | 
                +# -*- coding: utf-8 -*-  | 
            |
| 2 | 
                +  | 
            |
| 3 | 
                +import random  | 
            |
| 4 | 
                +import string  | 
            |
| 5 | 
                +  | 
            |
| 6 | 
                +  | 
            |
| 7 | 
                +fromstr = '0123456789#'  | 
            |
| 8 | 
                +tostr = 'RKxyjwzcs6U'  | 
            |
| 9 | 
                +  | 
            |
| 10 | 
                +  | 
            |
| 11 | 
                +def generate_tostr(n):  | 
            |
| 12 | 
                + fromstrlist = list(string.letters + string.digits)  | 
            |
| 13 | 
                + random.shuffle(fromstrlist)  | 
            |
| 14 | 
                + return ''.join(fromstrlist)[:n]  | 
            |
| 15 | 
                +  | 
            |
| 16 | 
                +  | 
            |
| 17 | 
                +def caesar_encrypt(plaintext):  | 
            |
| 18 | 
                + return str(plaintext).translate(string.maketrans(fromstr, tostr))  | 
            |
| 19 | 
                +  | 
            |
| 20 | 
                +  | 
            |
| 21 | 
                +def caesar_decrypt(ciphertext):  | 
            |
| 22 | 
                + return str(ciphertext).translate(string.maketrans(tostr, fromstr))  |