1.api中添加Base64算法
2.apps中添加home,用于测试算法,后面将首页写到此处
This commit is contained in:
		
							parent
							
								
									b28732d3ef
								
							
						
					
					
						commit
						32e82441c2
					
				| @ -37,6 +37,7 @@ INSTALLED_APPS = [ | |||||||
|     'django.contrib.staticfiles', |     'django.contrib.staticfiles', | ||||||
|     'apps.auth.apps.AuthConfig', |     'apps.auth.apps.AuthConfig', | ||||||
|     'apps.api.apps.ApiConfig', |     'apps.api.apps.ApiConfig', | ||||||
|  |     'apps.home.apps.HomeConfig', | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| MIDDLEWARE = [ | MIDDLEWARE = [ | ||||||
|  | |||||||
| @ -18,11 +18,13 @@ from django.contrib import admin | |||||||
| from django.urls import path, include | from django.urls import path, include | ||||||
| from django.conf import settings | from django.conf import settings | ||||||
| from django.conf.urls.static import static | from django.conf.urls.static import static | ||||||
|  | from apps.home import views as home_views | ||||||
| 
 | 
 | ||||||
| urlpatterns = [ | urlpatterns = [ | ||||||
|     # path('admin/', admin.site.urls), |     # path('admin/', admin.site.urls), | ||||||
|     # path('login', include('apps.login.urls')) |     # path('login', include('apps.login.urls')), | ||||||
|     # path('auth', include('apps.auth.urls')) |     # path('auth', include('apps.auth.urls')), | ||||||
|  |     path('home/', home_views.home, name='home'), | ||||||
|     path('api/', include('apps.api.urls')), |     path('api/', include('apps.api.urls')), | ||||||
|     path('auth/', include('apps.auth.urls')) |     path('auth/', include('apps.auth.urls')), | ||||||
| ] + static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT) | ] + static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT) | ||||||
|  | |||||||
| @ -48,4 +48,38 @@ class CaesarCypherClass: | |||||||
| class Base64CypherClass: | class Base64CypherClass: | ||||||
|     """ |     """ | ||||||
|     Base64的加解密算法,最简单的加密方式,可加密短的文字、小图片、小文件,图片文件大小不宜超过10M |     Base64的加解密算法,最简单的加密方式,可加密短的文字、小图片、小文件,图片文件大小不宜超过10M | ||||||
|     """ |     """ | ||||||
|  | 
 | ||||||
|  |     def __init__(self, *args, **kwargs): | ||||||
|  |         import importlib | ||||||
|  |         self.base64 = importlib.import_module('base64') | ||||||
|  |         self.os = importlib.import_module('os') | ||||||
|  |         self.time = importlib.import_module('time') | ||||||
|  | 
 | ||||||
|  |     @staticmethod | ||||||
|  |     def base64_encode_str(self, s): | ||||||
|  |         return self.base64.b64encode(s.encode('utf-8')) | ||||||
|  | 
 | ||||||
|  |     @staticmethod | ||||||
|  |     def base64_decode_str(self, s): | ||||||
|  |         return self.base64.b64decode(s).decode('utf-8') | ||||||
|  | 
 | ||||||
|  |     @staticmethod | ||||||
|  |     def base64_encode_pic(self, pic): | ||||||
|  |         if self.os.path.exists(pic): | ||||||
|  |             with open(pic, 'rb') as f: | ||||||
|  |                 read_pic = open(pic, 'rb') | ||||||
|  |                 read_data = read_pic.read() | ||||||
|  |                 read_pic.close() | ||||||
|  |             return self.base64.b64encode(read_data) | ||||||
|  |         else: | ||||||
|  |             return "图片路径不存在" | ||||||
|  | 
 | ||||||
|  |     @staticmethod | ||||||
|  |     def base64_decode_pic(self, pic_bs64): | ||||||
|  |         if self.os.path.exists(f"upload/temp/pic{int(self.time.time())}.jpg"): | ||||||
|  |             self.os.remove(f"upload/temp/pic{int(self.time.time())}.jpg") | ||||||
|  |         with open(f"upload/temp/pic{int(self.time.time())}.jpg", 'wb') as f: | ||||||
|  |             f.write(self.base64.b64decode(pic_bs64)) | ||||||
|  | 
 | ||||||
|  |         return 'upload/temp/pic.jpg' | ||||||
|  | |||||||
							
								
								
									
										0
									
								
								apps/home/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								apps/home/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										3
									
								
								apps/home/admin.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								apps/home/admin.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  | from django.contrib import admin | ||||||
|  | 
 | ||||||
|  | # Register your models here. | ||||||
							
								
								
									
										6
									
								
								apps/home/apps.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								apps/home/apps.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | |||||||
|  | from django.apps import AppConfig | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class HomeConfig(AppConfig): | ||||||
|  |     default_auto_field = 'django.db.models.BigAutoField' | ||||||
|  |     name = 'apps.home' | ||||||
							
								
								
									
										0
									
								
								apps/home/migrations/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								apps/home/migrations/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										3
									
								
								apps/home/models.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								apps/home/models.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  | from django.db import models | ||||||
|  | 
 | ||||||
|  | # Create your models here. | ||||||
							
								
								
									
										3
									
								
								apps/home/tests.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								apps/home/tests.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  | from django.test import TestCase | ||||||
|  | 
 | ||||||
|  | # Create your tests here. | ||||||
							
								
								
									
										14
									
								
								apps/home/views.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								apps/home/views.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,14 @@ | |||||||
|  | from django.shortcuts import render, HttpResponse | ||||||
|  | from apps.api.common import CaesarCypherClass, Base64CypherClass | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # Create your views here. | ||||||
|  | def home(request): | ||||||
|  |     bs64 = Base64CypherClass() | ||||||
|  |     s = request.GET.get('s') | ||||||
|  |     s_encode = bs64.base64_encode_pic(bs64, s) | ||||||
|  |     if s_encode != "图片路径不存在": | ||||||
|  |         s_decode = bs64.base64_decode_pic(bs64, s_encode) | ||||||
|  |     else: | ||||||
|  |         s_decode = '' | ||||||
|  |     return HttpResponse(f"加密:{s_encode}\n解密:{s_decode}") | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user