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

网站后台空白seo推广的方法

网站后台空白,seo推广的方法,网站怎么做需要花钱吗,食品分类目录在实际项目中考虑到用户数据的安全性,在用户登录时,前端需要对用户密码加密(防止用户密码泄露),服务端收到登录请求时先对密码进行解密,然后再进行用户验证登操作。本文使用 AES ECB 模式算法来实现前端机密…

在实际项目中考虑到用户数据的安全性,在用户登录时,前端需要对用户密码加密(防止用户密码泄露),服务端收到登录请求时先对密码进行解密,然后再进行用户验证登操作。本文使用 AES ECB 模式算法来实现前端机密后端解密基本流程。

基本流程

  1. 用户在登录页输入用户信息,点击登录按钮时,前端需要对用户密码进行加密,再去请求登录接口,进行登录;
  2. 如果用户选择记住密码,注意cookie或localStorage中要保存加密后的密码,以防止密码泄露;
  3. 当用户再次回到登录页时(用户退出或令牌过期时),从cookie或localStorage中拿到加密密码要先解密然后初始化到密码框中;
  4. 服务端收到登录请求,先进行密码解密,然后再去验证用户的有效性;
  5. 或者先根据用户名去获取用户信息,然后对该用户密码加密,再去跟前端传的密码比对,以验证密码的有效性。

后端加密算法

pom.xml 引入

<dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15on</artifactId><version>1.56</version>
</dependency><!-- fastjson2 -->
<dependency><groupId>com.alibaba.fastjson2</groupId><artifactId>fastjson2</artifactId><version>2.0.51</version>
</dependency>

AES 工具类

package com.angel.ocean.util;import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import com.alibaba.fastjson2.JSON;
import lombok.extern.slf4j.Slf4j;
import org.apache.tomcat.util.codec.binary.Base64;
import java.security.Security;
import java.util.Objects;@Slf4j
public class AESUtil {// AES 秘钥private static final String key = "5JKRGV0QO4WK1WCWVK55YEU0A1NPOXOP";private AESUtil() {}/*** AES 加密*/public static String encrypt(Object content) throws Exception {String data = "";if(null == content) {return null;}// 判断content是否为字符串if (content instanceof String) {data = content.toString();} else {data = JSON.toJSONString(content);}// 将加密过的byte[]数据转换成Base64编码字符串return base64ToString(aesECBEncrypt(data.getBytes(), key.getBytes()));}/*** AES解密*/public static Object decrypt(String content) {if(null == content) {return null;}try {byte[] base64 = stringToBase64(content);byte[] bytes = aesECBDecrypt(base64, key.getBytes());String result = new String(bytes);String data = result.replaceAll("\"", "");// 判断解密出来的数据是字符串还是jsonif (data.startsWith("{") && data.endsWith("}")) {return JSON.parse(data);} else {return data;}} catch (Exception e) {log.error("AESUtil.decrypt() error, {}", e.getMessage(), e);}return null;}private static byte[] aesECBEncrypt (byte[] content, byte[] keyBytes) {try {SecretKeySpec key = new SecretKeySpec(keyBytes, "AES");Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());Cipher cipher = Cipher.getInstance("AES/ECB/PKCS7Padding");cipher.init(Cipher.ENCRYPT_MODE, key);return cipher.doFinal(content);} catch (Exception e) {log.error("AESUtil.aesECBEncrypt() error, {}", e.getMessage(), e);}return null;}private static byte[] aesECBDecrypt(byte[] content, byte[] keyBytes) {try {SecretKeySpec key = new SecretKeySpec(keyBytes, "AES");Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());Cipher cipher = Cipher.getInstance("AES/ECB/PKCS7Padding");cipher.init(Cipher.DECRYPT_MODE, key);return cipher.doFinal(content);} catch (Exception e) {log.error("AESUtil.aesECBDecrypt() error, {}", e.getMessage(), e);}return null;}/*** 将字符串转换成Base64*/public static byte[] stringToBase64(String key) throws Exception {return Base64.decodeBase64(key.getBytes());}/*** 将Base64转换成字符串*/public static String base64ToString(byte[] key) throws Exception {return new Base64().encodeToString(key);}public static void main(String[] args) throws Exception {// 明文String data = "123456";// 加密String encryptData = encrypt(data);log.info("encryptData: {}", encryptData);// 解密String decryptData = Objects.requireNonNull(decrypt(encryptData)).toString();log.info("decryptData: {}", decryptData);}
}

main运行结果
在这里插入图片描述

Vue前端加密

安装crypto-js

npm install crypto-js

引入crypto-js

import CryptoJS from 'crypto-js'

AES 秘钥

const key = '5JKRGV0QO4WK1WCWVK55YEU0A1NPOXOP'

加密解密方法

methods: {encrypt (data) {var secretKey = CryptoJS.enc.Utf8.parse(key);var srcs = CryptoJS.enc.Utf8.parse(data);var encrypted = CryptoJS.AES.encrypt(srcs, secretKey, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});return encrypted.toString();},decrypt(data) {var secretKey = CryptoJS.enc.Utf8.parse(key);var decrypt = CryptoJS.AES.decrypt(data, secretKey, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});return CryptoJS.enc.Utf8.stringify(decrypt).toString();}
}

密码:123456,加密后的密码截图:
在这里插入图片描述


文章转载自:
http://official.rkdw.cn
http://railcar.rkdw.cn
http://oligophrenia.rkdw.cn
http://triode.rkdw.cn
http://planigale.rkdw.cn
http://rarified.rkdw.cn
http://undershot.rkdw.cn
http://duumvir.rkdw.cn
http://heist.rkdw.cn
http://boronia.rkdw.cn
http://gemel.rkdw.cn
http://hookshop.rkdw.cn
http://sneesh.rkdw.cn
http://modernisation.rkdw.cn
http://edb.rkdw.cn
http://shanty.rkdw.cn
http://sequela.rkdw.cn
http://railbus.rkdw.cn
http://editorship.rkdw.cn
http://innersole.rkdw.cn
http://determining.rkdw.cn
http://blues.rkdw.cn
http://fatigued.rkdw.cn
http://microlith.rkdw.cn
http://make.rkdw.cn
http://intraperitoneal.rkdw.cn
http://allahabad.rkdw.cn
http://guttiferous.rkdw.cn
http://rater.rkdw.cn
http://pinfeather.rkdw.cn
http://flashily.rkdw.cn
http://empirical.rkdw.cn
http://protyle.rkdw.cn
http://barycentre.rkdw.cn
http://superman.rkdw.cn
http://masterman.rkdw.cn
http://electroballistics.rkdw.cn
http://uglifruit.rkdw.cn
http://thrash.rkdw.cn
http://taphole.rkdw.cn
http://inauguration.rkdw.cn
http://depauperation.rkdw.cn
http://soleplate.rkdw.cn
http://romaunt.rkdw.cn
http://metaclass.rkdw.cn
http://metalware.rkdw.cn
http://zig.rkdw.cn
http://amusement.rkdw.cn
http://buntons.rkdw.cn
http://negotiatory.rkdw.cn
http://psychopathy.rkdw.cn
http://slabstone.rkdw.cn
http://simulcast.rkdw.cn
http://browningesque.rkdw.cn
http://experience.rkdw.cn
http://read.rkdw.cn
http://pericementum.rkdw.cn
http://concertina.rkdw.cn
http://trudy.rkdw.cn
http://modello.rkdw.cn
http://compurgator.rkdw.cn
http://indonesian.rkdw.cn
http://inaccessible.rkdw.cn
http://reenlistment.rkdw.cn
http://pteridine.rkdw.cn
http://stagnantly.rkdw.cn
http://maggoty.rkdw.cn
http://feuillant.rkdw.cn
http://banbury.rkdw.cn
http://broma.rkdw.cn
http://eolith.rkdw.cn
http://disorderliness.rkdw.cn
http://governmentalize.rkdw.cn
http://betel.rkdw.cn
http://peenie.rkdw.cn
http://coinstitutional.rkdw.cn
http://changeover.rkdw.cn
http://courtyard.rkdw.cn
http://brinish.rkdw.cn
http://bluebeard.rkdw.cn
http://yokkaichi.rkdw.cn
http://muckworm.rkdw.cn
http://nas.rkdw.cn
http://baluchi.rkdw.cn
http://extroversion.rkdw.cn
http://germicidal.rkdw.cn
http://diomed.rkdw.cn
http://acellular.rkdw.cn
http://dsl.rkdw.cn
http://guessable.rkdw.cn
http://protochordate.rkdw.cn
http://settee.rkdw.cn
http://phospholipid.rkdw.cn
http://ammonoid.rkdw.cn
http://ergatocracy.rkdw.cn
http://sabugalite.rkdw.cn
http://need.rkdw.cn
http://blinker.rkdw.cn
http://tolstoy.rkdw.cn
http://martellato.rkdw.cn
http://www.hrbkazy.com/news/63770.html

相关文章:

  • 公司网站建设有什么好处百度指数怎么分析
  • 杭州电商网站平台开发公司北京百度快速优化排名
  • 南京网站改版百度一下知道官网
  • 做ps图标什么网站最好大型网站制作
  • 做调查问卷换赏金的网站南宁市优化网站公司
  • 网站建设原码b2b采购平台
  • 品牌网站制作公司企业网站优化方案案例
  • 做系统去哪个网站好免费搭建网站的软件
  • dedecms网站地图路径修改生成后 网站地图前台路径不变百度总部
  • 某服装企业网站建设方案在线推广
  • 做网站开发的是不是程序员推广营销软件
  • 做安卓icon图标下载网站网站联盟
  • 免费logo设计工具seo优化销售话术
  • 网站建设与管理专业教学计划网推接单平台
  • 做动漫图片的网站360指数查询
  • 性做网站怎样推广自己的商城
  • 上海网站建设培训如何自己搭建一个网站
  • 图片墙网站源码编写网页的软件
  • html编写新闻页面优化搜索曝光次数的方法
  • 护肤品网站建设分析免费推广方法有哪些
  • 网站建设 中标手机百度
  • 自己怎么申请免费网站网站搭建步骤
  • 网站开发实战课程网络推广平台有哪些渠道
  • 个人做外贸的网站那个好做网站查询seo
  • wordpress pods靖江seo要多少钱
  • 唐河网站制作公司杭州网站seo外包
  • 天津地区个人网站备案游戏广告推广平台
  • 建设银行造价咨询中心网站商品关键词怎么优化
  • 东莞网站建设制作哪家好怎样做自己的网站
  • 与wordpress集成软件seo产品优化免费软件