当前位置: 首页 > news >正文

影视网站策划书兰州网站订制

影视网站策划书,兰州网站订制,莞城网站仿做,linux做网站教程需求: 1 #xff1a;员工在填写用户的手机号时#xff0c;直接填写#xff0c;在django后台中输入 2#xff1a;当员工在后台确认要存储到数据库时#xff0c;后台将会把手机号进行加密存储#xff0c;当数据库被黑之后#xff0c;手机号字段为加密字符 3#xff1a;员… 需求: 1 员工在填写用户的手机号时直接填写在django后台中输入 2当员工在后台确认要存储到数据库时后台将会把手机号进行加密存储当数据库被黑之后手机号字段为加密字符 3员工在后台中进行查看客户手机号时需要正常显示非加密状态 4直接把公钥和私钥存放到代码里面不要额外读取存储公钥私钥 5为何有该需求请参考《个人信息保护法》 1安装加密插件 pip install rsa该命令将会安装2024年1月17日 1插件名pyasn1,版本pyasn1-0.5.1 2插件名rsa,版本rsa-4.9 2生成加密文件 方法一 请自行创建a.py文件运行以下代码 python a.py # 方法一 # pip install rsaimport rsa# 生成公钥和私钥 # 使用rsa插件生成2048位加密 # 公钥 public_key # 私钥 private_key (public_key, private_key) rsa.newkeys(2048)# # # 将公钥和私钥保存到本地文件 # 导出公钥和私钥到文件 with open(public_key.pem, modewb) as public_file:public_file.write(public_key.save_pkcs1(PEM))with open(private_key.pem, modewb) as private_file:private_file.write(private_key.save_pkcs1(PEM)) 方法二 安装cryptography生成加密会比仅用rsa快一点 pip install cryptography #安装cryptography会自动安装cryptographycffipycparserfrom Crypto.PublicKey import RSA from Crypto.Cipher import PKCS1_OAEP import binascii # 生成RSA密钥对 key RSA.generate(2048) public_key key.publickey() # 将公钥和私钥保存到本地文件 with open(public_key.pem, wb) as f: f.write(public_key.export_key()) with open(private_key.pem, wb) as f: f.write(key.export_key())这时已经在a.py的相同路径中创建了公钥和私钥的文件 #生成私钥如下 # -----BEGIN RSA PRIVATE KEY----- # MIIEqQIBAAKCAQEAjItx/es/uoRA8OsH/1S5l6jYX/lTjJVsm3RId169zZTMwkq1 # 8sxFM1v/k1pLeHXokoTa5h6VWFQBgdNV7siGF5Jesrp3cDJQawj32Um31cwBiPGw # pQlW8q68uz4jbCu9AGFOPQMQrVF3KTNHv8YFJt83Ug5ByxGbpoopA3cZJi1la0LM # A2QFHgolgGooiIbn8MP6B8ovk05aKnZJwQvthIp7F73CEEfC0alLkn5cPMDY # 5zuCCUwVKZWpQierQIy6Shxu/gQ1zoB0Jnycl2pTR7hJ4hiWxKSz8aPzv5h4ZGh # 2Ou3FdaFTnL85fLbrSsugqS8bGV6teR4QPoVqwIDAQABAoIBAGD4baRGxmfIjI4t # fA0dxhfv9aryekULbC4uIznJcqf/vO9pYPSvICf5l/NxX5UztU4ywF36SAzzmT6c # NDRWwr5MzW3/3hzZekb/nxKbHG41HfIA4GJeeVFkYu/GReaCnxsCB9sl/sdtFwG # 98BHvpI9fQvurlKQSRYIXaoeiWYzsBKxBq4rCgpcgd3wYqhu9QrlhLbUDfF0Vr97 # UK6sqckJ01rV1UFSNK5UpBGRNQ/UrLKYjxxIYnDqjTf7UofOzuaeLfTMHy5o4mB # Pkh911h/pC/cCePlhcvz07GGyslntscoi/HCK5TLdaFBkeyVttN9Agxxl3siG6ux # 1rQ2r1ECgYkAun5oomGfEo9Tmxr6TlDqwg3aeD62vgVxjJ5DRHJ832nsfAVI9uQ # iD951AntPURLQdAFIr2W6146KyIBPGo/kS/cT29gbutDI9ws90AT7KySBs2E2jjH # 8hUxrXSdxVZTEdWFpkRUSj9iN49uoT4HLHncgWJ1BkXYibTG5QcLyaYq39AL2GO # ZwJ5AMDsy5OSf4hgUNUYGl3J2X3RG8lpPG/kHKn6onekWni7WIEr6bD8fAPaptv # 5XkYYsWxB9iG7MupCnzTX4IONy9ALs0UoY9STkPWV4l9qoOMatH9rW1jyRQD28Tp # qNuAGlYBPQFaqv7I5QhJ6Wqe94tGMWfX2rsHQKBiQCz1/NPpJSicVVO3lVD8QRy # 3qkwDEpuNRGraXO1LjL9wEgt21kXm0VmHtB9ipUd4B4yUf6mJpRoCy4K7LFcDCc # 8mqirVvEbFNg6ZZSZHtSv4HUWosh1VKPuYJP8xl4Tl6mU6paHtgnn/zP16H4HLk # OSvY6T5hK1FBde9fSRVk4vOXbrW8Z1BAnhgzwoD5HkwsrNgi9iNU6NLgVavx14L # iSr8vdHtOOgTEDI6O0vBDRY8dh/yu6WUrG3z8aUMbBlSf/fP1nvsx5x8W0Kr82a # U5yYbIvZgXIWQ/JK9h4yde2WjQWMfIzXFpstlf8pVXoIt9K0mbnQVut9xW1YRt # 1OkCgYgkkw7Tlf0ASZ5mkpy07MplV6h2umoP2IgDtZWzVJBqI1fbvKuqHgCr/0w # wlWF/fOGnKdjIO1EWUJ6RRYC10V57iSHUhncv0X0OxlbedFtuo0UX0FfpYbJNkzU # PhQ4uT1geCltZZwRMAMSKERUErCRKkwuxOIUx9bZ4NsXABhDzegcNh66nimE # -----END RSA PRIVATE KEY-----# 生成公钥如下 # -----BEGIN RSA PUBLIC KEY----- # MIIBCgKCAQEAjItx/es/uoRA8OsH/1S5l6jYX/lTjJVsm3RId169zZTMwkq18sxF # M1v/k1pLeHXokoTa5h6VWFQBgdNV7siGF5Jesrp3cDJQawj32Um31cwBiPGwpQlW # 8q68uz4jbCu9AGFOPQMQrVF3KTNHv8YFJt83Ug5ByxGbpoopA3cZJi1la0LMA2QF # HgolgGooiIbn8MP6B8ovk05aKnZJwQvthIp7F73CEEfC0alLkn5cPMDY5zuC # CUwVKZWpQierQIy6Shxu/gQ1zoB0Jnycl2pTR7hJ4hiWxKSz8aPzv5h4ZGh2Ou3 # FdaFTnL85fLbrSsugqS8bGV6teR4QPoVqwIDAQAB # -----END RSA PUBLIC KEY-----3安装读取加密插件 pip install cryptography4在django项目中应用 models.py文件中代码如下 # ------------------------------------------------------------------------------------- # 手机号加密插件 from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives import serialization, hashes from cryptography.hazmat.primitives.asymmetric import padding import base64# ------------------------------------------------------------------------------------- class Order(models.Model):id models.BigAutoField(primary_keyTrue, uniqueTrue, verbose_name订单id, )shoujihao models.TextField(verbose_name客户手机号码, max_length30000, blankTrue)# -------------------------------------------------------------------------------------# 手机号解密def get_shoujihao(self):# 1获取到数据库中的字符串 a# 2把字符串转换成字节类型 b# 3对字节b进行解密为 c# 4:返回cif len(self.shoujihao)20:shoujihao1self.shoujihaoshoujihao1 base64.b64decode(shoujihao1)# 读取私钥文件private_key-----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAp4vQEgBPcCy09xmJDVFxjuYkUSqBNgUxIHF4E9Vot1rDWU ncFSIERsEqTq9wIlVsgiVtRJ/0FxHLIgZPlFvRRUh0JjxkpddYAKEKK2gySoiE8 kUwomeYpILg/pAxtSoRBbUqtE/sTQZM2sOM07FYrz/Q8oVBN1Au3/LwOOAFf6R/5 lFBJCutS/wAuvydwxlTjuNp4PF4Tc65qaF35VE0IvcOByahAPRqI4TqFb/UOidJ 1Xc4HPIwmtkeYYRyqDgZun2tdQ0iQm7A7lN9TkP6qoKbTRI9ySoBHs4SJXy8r63r xPRgkjEsVR/hcsZAt7LHjNnZKWd8b1yi0AO56QIDAQABAoIBABya/xUXtvheta3r ju32bgY5Dm59le6aSt9rDbOUuPFAYL7qepOP5yROgdr3075b5ETveMnvxOE45BD 7Ep5EbpQzobCY8EO4MqHKDhPOiA03dMvDAV9pH/0HyjNCVo1r8OehI0Gf1LlHPR c9i7DgXcx4GrgCFg6g0sP7GR8IxWKkT1rHNWWjqaWh3HlBbJhdrZpxjKbCqTjKM ImrgPKDi1An0NNHJyQe42XNgmOAMoCRUvP8skLveyYDQ2LCeTjnmOD0WTMlwlt3 ulu4MjKh/wMAj7dxguonK97C01n0utPk0KdkOPrBNazEF2roY2FrcYrn1MgTs QDECG1JVtYVP1Tuyb3pgoQKBgC9SV/Ft1K4T8e/AiTrF07SCn8BEZOZ0BDI69lB cYh1CPXBt1M0aTM1mwCVWxYrapfVismesnIiVQOn2AehdDyvE1krkHRTQCUYD PkM7efPek9WBWHy6dbEPJmMDs1P5mVOV7MJEGQMtE01BO/KoQ74fePrbaFDwHkU nzuBAoGBAJIpUUmDMnkMzr5HPw1rtZEjkR0kEQXU3jeaKA1TjqRoli1ApUpBB11 ekDfPc/BqzRSIkACEijwdnf7NhQveCAiEaj5NiGkwS/zjX9S96v0qK5SFil6yc EXv1GMN54aCmiHWBGq86tOKjV9M4hnlVpuRJPeHi52nAyHpJfmB7 -----END RSA PRIVATE KEY-----key serialization.load_pem_private_key(private_key.encode(), passwordNone, backenddefault_backend())decrypted_data key.decrypt(shoujihao1, padding.OAEP(mgfpadding.MGF1(algorithmhashes.SHA256()),algorithmhashes.SHA256(), labelNone))# decrypted_data 的类型为字节decrypted_datadecrypted_data.decode(utf-8)# decrypted_data.decode()之后的类型为字符串shoujihao1decrypted_dataprint(类型)print(type(decrypted_data))print(decrypted_data)# 打印解密后的消息color_code greenreturn format_html(span stylecolor:{};{}/span, color_code, shoujihao1)else:color_code greenreturn format_html(span stylecolor:{};-/span, color_code, )get_shoujihao.short_description 手机号admin.py文件中代码如下 # ------------------------------------------------------------------------------------- # 手机号加密插件 from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives import serialization, hashes from cryptography.hazmat.primitives.asymmetric import padding import base64# ------------------------------------------------------------------------------------- # ------------------------------------------------------------------------------------- class Order_salesmanAdmin(admin.ModelAdmin):# -------------------------------------------------------------------------------------# 手机号加密显示 和手机号显示# 设置录入后台中展示的数据字段list_display [id,shoujihao, get_shoujihao,]def save_model(self, request, obj, form, change):if not obj.pk:obj.userid UserProfile.objects.get(userrequest.user)# 客户手机号加密存储shoujihao1 obj.shoujihaoif len(shoujihao1) 11:# 1:在admin后台中允许用户输入的是字符串类型的数据# 2:加密之后得到的是字节类型# 3:把字节类型的编码为utf-8的字符串类型 存储在数据库中# 读取公钥文件public_key -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp4vQEgBPcCy09xmJDVFx juYkUSqBNgUxIHF4E9Vot1rDWUncFSIERsEqTq9wIlVsgiVtRJ/0FxHLIgZPlF TkP6qoKbTRI9ySoBHs4SJXy8r63rxPRgkjEsVR/hcsZAt7LHjNnZKWd8b1yi0AO5 6QIDAQAB -----END PUBLIC KEY-----key serialization.load_pem_public_key(public_key.encode(), backenddefault_backend())encrypted_data key.encrypt(shoujihao1.encode(),padding.OAEP(mgfpadding.MGF1(algorithmhashes.SHA256()),algorithmhashes.SHA256(), labelNone))# 加密后的数据类型 encrypted_data class bytes 字节类型encrypted_database64.b64encode(encrypted_data).decode(utf-8)# decode为utf-8之后的数据类型 为字符串类型这样才可以在字符字段中存储# print(decode之后的数据类型)# print(type(encrypted_data))# print(encrypted_data)obj.shoujihao encrypted_data# -------------------------------------------------------------------------------------if not change:obj.userid UserProfile.objects.get(userrequest.user)else:obj.updated_userid UserProfile.objects.get(userrequest.user)obj.save()super().save_model(request, obj, form, change)# -------------------------------------------------------------------------------------
http://www.zqtcl.cn/news/392726/

相关文章:

  • asp.net 做网站源代码网站怎么做配置文件夹
  • 网站建设云尚网络wordpress首页flash
  • 北京优化网站宁波网络营销策划公司
  • 网站建设项目前分析电商运营一般要学多久
  • 哪个网站可以做卖房网站菜单模板
  • 网站推广渠道特点郑州百度推广外包
  • 合肥高端网站建设设计公司wordpress 多语言主题
  • 北京工程工程建设交易信息网站wordpress 角色 功能
  • 做购物网站有什么要求吗wordpress查看访问量
  • 多城市网站设计阿里云网站访问不了怎么办
  • 南岗哈尔滨网站建设开发小程序多少费用
  • 百度网站入口特效词品牌企业网站建设公司
  • wordpress找回管理员密码网站关键词排名优化工具
  • 望城建设局网站网站建设与维护可行性报告
  • 免费php网站模板下载手机端网站如何优化
  • 自己做的网站 打开了没有图片注册工程公司名称大全
  • 做网站的团队业绩怎么写WordPress 去掉副标题
  • 学校网页网站模板wordpress更换域名还是之前链接
  • 市面上有什么搭建网站工作室石家庄做网站和宣传的
  • 视频图站主题 wordpress快速收录提交入口
  • 外贸视频网站投资理财网站开发
  • 专业建设网站多少钱铜川网站seo
  • 海外网站seo优化wordpress的代码逻辑
  • 怎样帮别人做网站哪有网站给光头强做面
  • 聊城营销网站建设价格网站设计论文框架
  • 成都哪家网站建设做得好介绍自己的家乡遵义网站建设
  • 阳春新农村建设网站欣赏网站
  • 永久免费企业网站建设杭州个人做网站
  • 博罗中山网站建设做网站的软件 知乎
  • 广州网站开发广州亦客网络解答wordpress换空间要改