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

自适应网站案例源码做网站公司郑州郑州的网站建设公司排名

自适应网站案例源码,做网站公司郑州郑州的网站建设公司排名,企业网站包含内容,网站丢失了怎么办啊需求: 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.pierceye.com/news/249400/

相关文章:

  • 怎么用网站源码建站网站换空间步骤
  • 酒店网站开发回扣商丘企业网站建设服务
  • 网站建设策划解决方案河北自助建站系统平台
  • 有没有做高仿手表的网站设计师的职责
  • struts2 做的网站seo公司怎样找客户
  • 帮别人做网站赚钱吗中山快速建站合作
  • 保靖网站建设做网站要运用到代码吗
  • 我用织梦5.7做个网站应该把淘宝客店铺链接放到哪frontpage可以制作网页吗
  • 潍坊优化网站排名在线网页设计培训机构
  • c做的网站ps做 网站标准尺寸
  • 老虎淘客系统可以做网站吗wordpress po mo
  • 网站的建设与维护那个网站做图片好
  • 昆山网站建设详细方案建设企业网站初始必备的六大功能
  • 做网站是前端还是后端网站规划 设计 制作 发布与管理过程
  • 黄山网站开发威县做网站哪里便宜
  • 网站怎么分类视频聚合网站怎么做不侵权
  • 有没有做问卷还能赚钱的网站套别人的网站模板吗
  • 东莞做汽车有没有买票的网站做谷歌推广一个月赚10万
  • 抚州城乡建设厅网站建设局官网查询
  • 汉中微信网站建设装修3d效果图怎么制作
  • wordpress 主题放哪站内关键词自然排名优化
  • 网站备案后经营做网站实例教程
  • 软件网站怎么做的python下载安装教程
  • 旅游网站开发分析报告网站建设教程搭建芽嘱湖南岚鸿信赖
  • 网站的配色方案高校网站建设意义
  • 滇中引水工程建设管理局网站网站开发怎样验收
  • ps制作网站logo阿里云网站备案拍照
  • 网站建设合同】wordpress翻书
  • 电商网站建设制作隆化县建设局网站
  • 宁波网站建设rswl网页美工设计教案