[加密]账号登录密码传输加密

TikTok登录安全机制解析:XOR加密算法在账号密码传输中的应用 本文深入解析了TikTok登录安全机制,重点探讨了XOR加密算法在账号密码传输中的应用。文章解释了XOR加密如何通过简单的异或运算为敏感数据提供基础混淆,防止明文传输,并分析了其在TikTok实际登录流程中的角色与实现原理。XOR加密以其高效、低开销的特性,成为TikTok应对海量登录请求、提升基础传输安全的重要一环。 阅读详情

在实际使用过程中,用户登录时密码如果明文,存在被黑客窃取的高危风险。通过https传输加密和密码传输加密 这两种方式,来防止账号登录过程的信息泄露风险。

https加密是针对网站网址的,可以参考我的https升级的文章。

密码传输加密,我采取AES对称加密,页面Js里面加密,后台接受密文,再解密还原密码。更严谨的是再加盐,这里不做深究。

 1. 前端JS

<script type="text/javascript" src="<c:url value='/js/aes.js'/>"></script>
<script type="text/javascript" src="<c:url value='/js/pad-zeropadding-min.js'/>"></script>

#加密密码 

function encrypt(data) {
    var key  = CryptoJS.enc.Latin1.parse('glperryblglperry'); //16位,自定义
    var iv   = CryptoJS.enc.Latin1.parse('glperryblglperry'); //16位,自定义
    return CryptoJS.AES.encrypt(data, key, {iv:iv,mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.ZeroPadding}).toString();
}

function login(){
    ...
var password = getFormValue('password');
    password = encrypt(password); //AES加密
    ...
}

2 后台解密,加密类

package util;


import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;

public class AesEncryptUtil {
	
	//使用AES-128-CBC加密模式,key需要为16位,key和iv可以相同!
	private static String KEY = "dufy20170329java";
	
	private static String IV = "dufy20170329java";
	/**
	 * 加密方法
	 * @param data  要加密的数据
	 * @param key 加密key
	 * @param iv 加密iv
	 * @return 加密的结果
	 * @throws Exception
	 */
	public static String encrypt(String data, String key, String iv) throws Exception {
		try {

			Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");//"算法/模式/补码方式"
			int blockSize = cipher.getBlockSize();

			byte[] dataBytes = data.getBytes();
			int plaintextLength = dataBytes.length;
			if (plaintextLength % blockSize != 0) {
				plaintextLength = plaintextLength + (blockSize - (plaintextLength % blockSize));
			}

			byte[] plaintext = new byte[plaintextLength];
			System.arraycopy(dataBytes, 0, plaintext, 0, dataBytes.length);

			SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES");
			IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes());

			cipher.init(Cipher.ENCRYPT_MODE, keyspec, ivspec);
			byte[] encrypted = cipher.doFinal(plaintext);

			return new Base64().encodeToString(encrypted);

		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}

	/**
	 * 解密方法
	 * @param data 要解密的数据
	 * @param key  解密key
	 * @param iv 解密iv
	 * @return 解密的结果
	 * @throws Exception
	 */
	public static String desEncrypt(String data, String key, String iv) throws Exception {
		try {
			byte[] encrypted1 = new Base64().decode(data);

			Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
			SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES");
			IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes());

			cipher.init(Cipher.DECRYPT_MODE, keyspec, ivspec);

			byte[] original = cipher.doFinal(encrypted1);
			String originalString = new String(original);
			return originalString;
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}
	/**
	 * 使用默认的key和iv加密
	 * @param data
	 * @return
	 * @throws Exception
	 */
	public static String encrypt(String data) throws Exception {
		return encrypt(data, KEY, IV);
	}
	/**
	 * 使用默认的key和iv解密
	 * @param data
	 * @return
	 * @throws Exception
	 */
	public static String desEncrypt(String data) throws Exception {
		return desEncrypt(data, KEY, IV);
	}
	
	/**
	* 测试
	*/
	public static void main(String args[]) throws Exception {

		String data= "123456";

		String key = "glperryblglperry"; //16位,必须与js里面相同
		String iv = "glperryblglperry"; //16位,必须与js里面相同

		data = encrypt(test, key, iv);

		System.out.println(data);
                //测试解密结果
		System.out.println(desEncrypt(data, key, iv));
	}
	
}

 

asp解密ras,登录加密,密文传输 网上找了很多调用的要么就全部是JS调用的。漏洞检测的时候根本不行。传输的还会是明文,所以自己搞了一个C#打包的dll文件。你前台用JS加密传输到后台,然后调用我这个DLL文件直接就可以解密。dll文件需要regasm在服务器上注册下就行了。百度一下方法很多。 asp调用代码: dim obj1 set obj1 = server.CreateObject("LibTest2.RSACrypto") AdminPassword=obj1.Decrypt(AdminPassword) 前台加密: var pubkey="MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIEfcdnTXDGq97mUEzWQg2GXhgymMV2xmxk5Wr+foxH9NrCrPglVo/teRAaDWs2J81pQ/yokGIXS05Upk8TG2HUCAwEAAQ==";     var encrypt = new JSEncrypt();     encrypt.setPublicKey(pubkey);      var encrypted = encrypt.enc 立即下载

相关推荐

Visual Studio 命令提示符工具区别与使用场景

Visual Studio会提供一系列命令提示符工具,这些工具应用在哪些场景呢?本文进行了相关介绍。

cicada15的博客 3493

常见的几种数据加密算法

常见的几种数据加密算法

qq_53663858的博客 1万+

智能化运维(AIOps)

• 调查显示,54.79%的企业当前着重关注智能运维的质量领域(包括异常检测、告警收敛、根因分析、 故障处置等)能力建设,其次45.77%的企业关注效率领域,45.49%的企业关注成本领域,30.82%的 企业关注安全领域。从目前的发展情况来看,现阶段AIOps能力大多集中在L2级别, 主要以系统辅助分析,帮助人工进行决策和操作为主,较为领先的 能力实践可以达到L3级别,而L4和L5级别随着AIOps的技术发展 和能力的逐步增强,将是未来智能运维能力建设的发展方向和目标。

追求更专业的设计 3102

数据加密存储常见的加密方式

数据加密存储五种常见的加密方式先总结下:数据加密存储五种常见的加密方式:数据加密存储方式一、MD5加密(加密不可逆)。数据加密存储方式二、Base64位加密(可加密也可解密)。数据加密存储方式三、sha1加密(加密不可逆)。数据加密存储方式四、RSA加密(公钥加密,私钥解密)。数据加密存储方式五、AES加密(需要密钥才能解密)

计算机毕业论文源码,学生个人网页制作html源码。贴近用户做网络推广和互联网优化。 6971

GAMES101:MacOS作业环境搭建

查看gcc/clang的位置产看gcc/clang的版本1.1.2 安装cmake。

weixin_38844255的博客 717

四路独立可控供电USB 2.0智能集线器设计

USB集线器是连接外设的基础接口设备,其供电管理能力直接影响系统可靠性与远程运维效率。传统HUB仅提供固定VBUS输出,缺乏端口级电源控制机制,难以实现软复位、故障隔离与功耗优化。本方案基于USB 2.0协议透明转发原理,通过硬件级电子负载开关(如MT9700)与独立MCU(ESP32-C3)协同,构建具备四路独立限流(680mA)、纳秒级通断响应、WiFi/MQTT远程管控能力的智能供电架构。技术价值体现在协议无侵入、控制域与数据域物理隔离、默认安全上电策略等工程实践要点,广泛适用于工业远程调试、实验室设

weixin_36289742的博客 193

数据安全:通用的数据加密方法(AES、RSA、数字签名和数字证书)

在日常的接口交互中,数据的安全性是优先考虑的问题之一。那么一般我们在实际工作中如何去保证数据的安全呢?一般是通过数据加密的方式来处理。加密算法,如果按是否可以把密文还原成明文来划分的话,可以分为可逆加密和不可逆加密。......

weixin_39885962的博客 9359

游戏开发实战:用UE4 Marschner模型打造次世代头发渲染(附Shader代码解析)

本文详细解析了如何在UE4中使用Marschner模型实现次世代头发渲染,包括Shader代码逐行解读与参数调优。通过对比传统Kajiya-Kay模型,展示了Marschner模型在物理精确性和视觉效果上的优势,并提供了性能优化与实战技巧,帮助技术美术师提升游戏角色渲染品质。

weixin_28223453的博客 240

登录系统的时候账号和密码加密传输

登录系统的时候账号和密码加密传输

会写Bug的攻城狮 1748

雨流计数法的matlab实现,采用三点法与四点法

介绍雨流计数法是20世纪50年代由英国的两位工程师M.Matsuishi和T.Endo提出来的。该计数法的主要功能是把实测载荷历程简化为若干个载荷循环,供疲劳寿命估算和编制疲劳试验载荷谱使用。它以双参数法为基础,考虑了动强度(幅值)和静强度(均值)两个变量,符合疲劳载荷本身固有的特性。雨流计数法主要用于工程界,特别在疲劳寿命计算中运用非常广泛计数规则(1)雨流依次从载荷时间历程的峰值位置的内侧沿着...

u011391128的博客 3万+

AIAgent知识表示与推理:基于本体论与规则引擎的实现

AIAgent知识表示与推理:基于本体论与规则引擎的实现 1. 背景介绍 人工智能(AI)系统的核心是知识表示和推理,这是实现智能行为的基础。在过去的几十年里,人工智能领域一直致力于研究如何有效地表示和推理知识,以支持智能系统的决策和行为。其中,基于本体论的知识表示和

AI天才研究院 1495

登录实现密文传输账号密码——RSA加密解密

登录实现密文传输账号密码——RSA加密解密,前端加密后台解密

run__ning的博客 379

华为OD机试真题 新系统 - 勇攀数字高峰 (Java/Py/C/C++/Js/Go)

本文整理华为 OD 机试新系统机考真题库,涵盖高频考点精析与完整题目内容,提供 C 语言、Java、C++、Python、Go、JavaScript 多语言源码实现,搭配详细解题思路讲解,并支持在线 OJ 刷题练习,助力高效备考华为 OD 机试新系统。

算法大师! 2095

对登录中账号密码进行加密之后再传输的爆破的思路和方式

一. 概述 渗透测试过程中遇到web登录的时候,现在很多场景账号密码都是经过js加密之后再请求发送(通过抓包可以看到加密信息)如图一burp抓到的包,request的post的登录包,很明显可以看到password参数的值是经过前端加密之后再进行传输的,遇到这种情况,普通发包的爆破脚本就很难爆破成功。鉴于这种情况,这边分析四种方式进行绕过加密爆破。 二. 方法和思路 1. 分析找出是哪个...

weixin_30301449的博客 1072

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

实现注册登录时数据的加密传输(含前后端具体代码)_前后端传的登录账号密码用什么加密

encoding:# key需要为16位的倍数P,fj"/*** java使用AES加密解密 AES-128-ECB加密* 与mysql数据库aes加密算法通用* 数据库aes加密解密* -- 加密* -- 解密*/// 加密System.out.print("Key为空null");// 判断Key是否为16位= 16) {System.out.print("Key长度不是16位");//"算法/模式/补码方式"

baimao__Ch的博客 1387

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

vue中使用Jsencrypt对账号密码加密传输

vue中使用Jsencrypt对账号密码加密传输

qq_27363761的博客 474

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

APP账号密码传输安全分析

最近在搞公司的安卓APP测试(ThinkDrive 企邮云网盘)测试,安卓app测试时使用代理抓包,发现所此app使用HTTP传输账号密码,且密码只是普通MD5加密,存在安全隐患,无法防止sniffer攻击、中间人攻击(因此这次安全问题,加强对这两安全术语的了解): 问题1:账号密码采用http传输,账号与密码(MD5值)均可以捕获; 问题2:密码虽采用MD5加密,简单密码可以在...

dgqvhtlwq472235338的博客 181

抖音 App 登录账号、密码、验证码 XOR 加密算法

抖音 App 登录账号、密码、验证码 XOR 加密算法% E9 n+ z, \& R1 a4 b. ^流程分析 登录抖音 APP 时,通过抓包发现账号密码是非明文传输的。 def xor(s): chars = '0123456789abcdef' arr = [i ^ 5 for i in s.encode()] result = '' for b in arr: result += chars[(b &amp...

六桥风月IT随笔 1万+

若依标准版添加RSA加密传输账号信息

主要实现若依标准版的RSA加密传输

qq_45767167的博客 376

记python实现RSA加密登录

项目测试中发现登录的账号密码表单是明文传输的,开发修复了之后,接口脚本因为要用到Cookies,又不想手动去复制Cookies,就只能吧公钥拿出来自己实现登录了 一、分析加密过程 查看网页源码 可以看到这里登录方法直接写在源码里面了,下面直接看看登录做了什么操作 查看登录实现过程 得出下面几个信息: 登录接口/api/account/login 登录的json为:{‘ciphertext’: ciphertext}a. ciphertext是rsaEncryption(loginInfo)的返

Orangesir的博客 1375
上一篇: 网站从Http升级为Https真实案例,SSL免费证书加密
下一篇: vmware虚拟机三种配置方式,与本机及网络通信详解
GLPerryHsu
博客等级 码龄9年 22粉丝 39原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值