导航:首页 > 文档加密 > js常用加密方式

js常用加密方式

发布时间:2023-04-04 00:50:52

⑴ Nodejs 使用node-rsa 加密数据

RSA算法原理 阮一峰

1、在node.js中使用rsa算法。首先需要是使用node-rsa包

2、实现加密/解密

客户端需要使用一个jsencrypt.min.js 包利用公钥对数据进行加密

以上运行时可以会出现如下错误

出现如上错误的时候,是服务端的加密方法和jsencrypt的加密方式不一致导致的。jsencrypt加密方式是pkcs1,node-rsa 默认的加密方式是pkcs1_oaep。解决办法如下:

⑵ js有几种加密方式

首先,MD5不是加密算法,是签名算法,哎,到底是有多少国人被毒害了呀。

另外,只要是可以由软件实现的加密算法,js都能使用,只是有效率问题,
一般的
非对称算法,使用的资源都很庞大,所以js很少有。
而对称的加密算法……,由于js是对用户可见的,所以……就和没加密一样。

这也就是为什么真正的高安全网站都不会选择用js做加密,而是选择用https 协议这样的手段。

再次重申,MD5不是加密算法,所以不再上述范围内

⑶ 功能强大的JS加密库-CryptoJS

CryptoJS是javaScript的一个加解密库集合,可以说平时开发磨肆中需要用到的加解密方法,它这里都包含了

1、MD5加密,这是一种不可逆的加密

2、SHA-1加密,是现有 SHA 哈希函数中最成熟的,它用于各种安全应用程序和协议

3、SHA-2加密,不像 SHA-1 那样广泛使用,尽管它似乎提供了更好的安全性

4、AES加解密瞎衫轿, 是美国联邦信息处理标准 (FIPS)提出的高级加密标准

5、DES加解密, DES 是以前占主导地位的加密算法,并作为官方联邦信息处理标准 (FIPS) 发布,由于密钥大小较小,DES 现在被认塌孙为是不安全的

6、转Base64

好了常用的加解密方法就介绍到这了

觉得效果不错的请帮忙加个关注点个赞,经常分享前端实用开发技巧

⑷ 前端js 加密解密方式

一、base64加密
使用JS函数的window.btoa()和 window.atob(),分别是中腊编码和解码

二、编码和解码字符串

使用JS函巧羡数卖宽滑的escape()和unescape(),分别是编码和解码

三、AES加密解密
四、RSA加密解密

⑸ 求助前端JS都是用什么加密的

js的不可雀册读化处理分为三个方面:压缩(compression)、混铅岁笑淆(obfuscation) 和加密(encryption)。
1. 压缩
这一操作的目的,是让最终代码传输量 (不代表代码量, 也不代表文件体积)尽可能小。压缩js的工具,常见的有:YUI Compressor、UglifyJS、Google Closure Compiler 等。

通常在代码压缩的过程中,只改变代码的语法,代码的语义和控制流不会有太大改变。

常见做法是把局部变量缩短化,把一些运算进行等价替换等。代码压缩对于代码保护有一些帮助,但由于语义和控制流基本没变,起不了太大作用。

在压缩层面上,代码不可读只是一种附带伤害,不是最终目的。

2. 混淆

这一操作的目的,是让代码尽可能地不可读,主要用作代码保护。

让代码不可读,增加分析的难度,这是唯一目的。混淆过后文件体积变大一倍也没关系,代码量变多也没关系,运算慢50% 也没关系。

常见的做法有:分离常量、打乱控制流、增加无义代码、检查运行环境槐含如果不对就罢工,等等。

在混淆层面上,代码不可读是最终目的。

值得一提的是,Google Closure Compiler 的 Advance Level Compression 会压缩类和对象的成员,其压缩结果很难分析,也可以认为是一种混淆,但兼容性不太好。

3. 加密

有加密就有解密,意味着加密操作可逆,密文可以明文化。

在Web界,可以称之为加密的东西包括:HTTPS传输、JavaScript实现对称加密或者不对称加密等等。

⑹ 记录一下前端使用CryptoJS的几种加密方式

自己太小白了,之前在PC端项目中使用的MD5加密,现在的小程序项目使用了 CryptoJS 里面的 enc-base64 和 hmac-sha1 ,之前没有用到过这两种,所以比较疑惑,为何在小程序不继续使用 MD5 呢?所以在这里记录一下自己解疑惑的一些知识点。

随着互联网的兴起,我们对信息的安全越来越受重视,这样就导致在web开发中,对用户密码等各种加密变得更加重要了。与服务器的交互中,为了确保数据传输的安全性,避免被黑客抓包篡改。

对于Base64编码的,我觉得看一篇文章能够解决你的疑惑,我在这里就不赘述了
🧐 Base64编码原理

如: 用户密码,请求参数,文件加密

如: 接口参数签名验证服务

支付数据、CA数字证书

前端的朋友可能会关注前端js加密,我们在做 WEB 的登录功能时一般是通过 Form 提交或 Ajax 方式提交到服务器进行验证的。为了防止抓包,登录密码肯定要先进行一次加密(RSA),再提交到服务器进行验证。一些大公司都在使用,比如淘宝、京东、新浪 等。

前端加密也有很多现成的js库,如:

JS-RSA: 用于执行OpenSSL RSA加密、解密和密钥生成的Javascript库, https://github.com/travist/jsencrypt

MD5: 单向散列加密md5 js库, https://github.com/blueimp/JavaScript-MD5

crypto-js: 对称加密AES js库, https://github.com/brix/crypto-js

-CryptoJS (crypto.js) 为 JavaScript 提供了各种各样的加密算法。

HMAC 系列是消息验证,用于验证一个消息是否被篡改——如网站上传递 email 和 hmac(email),则接收时可以通过 hmac(email) 获知 email 是否是用户伪造的

⑺ JS加密方法

本文一共介绍了七种方法:
一:最简单的加密解密
二:转义字符""的妙用
三:使用Microsoft出品的脚本编码器Script Encoder来进行编码 (自创简单解码)
四:任意添加NUL空字符(十六进制00H) (自创)
五:无用内容混乱以及换行空格TAB大法
六:自写解密函数法
七:错误的利用 (自创)

在做网页时(其实是网页木马呵呵),最让人烦恼的是自己辛辛苦苦写出来的客户端IE运行的JAVASCRIPT代码常常被别人轻易的拷贝,实在让自己的心里有点不是滋味,要知道自己写点东西也挺累的......^*^

但我们也应该清楚地认识到因为JAVASCRIPT代码是在IE中解释执行,要想绝对的保密是不可能的,我们要做的就是尽可能的增大拷贝者复制的难度,让他知难而退(但愿~!~),下面我结合自己这几年来的实践,及个人研究的心得,和大家一起来探讨一下网页中JAVASCRIPT代码的加密解密技术。

以加密下面的JAVASCRIPT代码为例:
<SCRIPT LANGUAGE="JavaScript">
alert("《黑客防线》");
</SCRIPT>

一:最简单的加密解密

大家对于JAVASCRIPT函数escape()和unescape()想必是比较了解啦(很多网页加密在用它们),分别是编码和解码字符串,比如例子代码用escape()函数加密后变为如下格式:
alert%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B

如何?还看的懂吗?当然其中的ASCII字符"alert"并没有被加密,如果愿意我们可以写点JAVASCRIPT代码重新把它加密如下:
%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B

呵呵!如何?这次是完全都加密了!

当然,这样加密后的代码是不能直接运行的,幸好还有eval(codeString)可用,这个函数的作用就是检查JavaScript代码并执行,必选项 codeString 参数是包含有效 JavaScript 代码的字符串值,加上上面的解码unescape(),加密后的结果如下:
<SCRIPT LANGUAGE="JavaScript">
var code=unescape("%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B");
eval(code)
</SCRIPT>

是不是很简单?不要高兴,解密也就同样的简单,解密代码都摆给别人啦(unescape())!呵呵

二:转义字符""的妙用

大家可能对转义字符""不太熟悉,但对于JavaScript提供了一些特殊字符如:n (换行)、 r (回车)、' (单引号 )等应该是有所了解的吧?其实""后面还可以跟八进制或十六进制的数字,如字符"a"则可以表示为:"141"或"x61"(注意是小写字符"x"),至于双字节字符如汉字"黑"则仅能用十六进制表示为"u9ED1"(注意是小写字符"u"),其中字符"u"表示是双字节字符,根据这个原理例子代码则可以表示为:

八进制转义字符串如下:
<SCRIPT LANGUAGE="JavaScript">
eval("")
</SCRIPT>

十六进制转义字符串如下:
<SCRIPT LANGUAGE="JavaScript">
eval("")
</SCRIPT>

这次没有了解码函数,因为JavaScript执行时会自行转换,同样解码也是很简单如下:
<SCRIPT LANGUAGE="JavaScript">
alert("")
</SCRIPT>

就会弹出对话框告诉你解密后的结果!

⑻ 前端jsp登录密码加密为des3加密方法

*_*?我是谁
原创
关注
0点赞·757人阅读
<%@ page contentType="text/html;charset=GBK"%>
<%@ page language="java" import="java.util.regex.*,
com.excellence.common.OAConstant,
com.excellence.common.UserInfo,
java.util.*,
java.text.SimpleDateFormat," %>
<html>
<head>
<title>XX系统</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="/common/styles/default/default.css" type="text/css">
</head>
<script language="javascript">
</script>
<script language="JavaScript" src="/oa/javascripts/crypto-js.js"></script>
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0">
<center>

</center>
</body>
<script type="text/vbscript">
Function str2asc(strstr)
str2asc = hex(asc(strstr))
End Function

Function asc2str(ascasc)
asc2str = chr(ascasc)
End Function
</script>
<script>
<%
UserInfo userInfo = (UserInfo) request.getSession().getAttribute("userInfo ");
String account="";
//获取用户账号
if(userInfo.getAccount()!=null&&!"".equals(userInfo.getAccount()))
account=userInfo.getAccount();

//有效期:格式:yyyy-MM-dd HH:mm:ss 有效期不能设置超过10分钟
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date now = new Date();
Date date = new Date(now .getTime() + 600000);
String time = df.format(date);
%>

//sessionid = base64(DES(用户账号&有效锋拿期))
//DES key:67HT4WrP
var sessionId = "<%=account%>" + "&" + "<%=time%>";
var mykey = "67HT4WrP";

// DES加密模式:CBC模式/银返搭ECB模式
// CBC模式加密
function encryptCBC(text, textKey) {
// 密钥转成16进制的字符串
var key = CryptoJS.enc.Utf8.parse(textKey);
// 加密过程
var encrypted = CryptoJS.DES.encrypt(text, key, {
// iv偏移量为key值
iv: key,
// 模式为CBC
mode: CryptoJS.mode.CBC,
// DES加密padding为Pkcs7
padding: CryptoJS.pad.Pkcs7
});
// 加密返回为字符串密文世念(加密经过一次base64加密,结果可看结果)
return encrypted.toString();
}

//对字符串中的特殊字符进行UrlEncode转码
function UrlEncode(str){
var ret="";
var strSpecial="!\"#$%&'()*+,/:;<=>?[]^`{|}~%";
var tt= "";

for(var i=0;i<str.length;i++){
var chr = str.charAt(i);
var c=str2asc(chr);
tt += chr+":"+c+"n";
if(parseInt("0x"+c) > 0x7f){
ret+="%"+c.slice(0,2)+"%"+c.slice(-2);
}else{
if(chr==" ")
ret+="+";
else if(strSpecial.indexOf(chr)!=-1)
ret+="%"+c.toString(16);
else
ret+=chr;
}
}
return ret;
}

//对sessionid进行加密
var desPass=encryptCBC(sessionId,mykey);

//对加密的sessionid中的特殊字符转码
var desPassEncode=UrlEncode(desPass);

//URL格式:http://xxxxxxxxxxxx?sessionid=&appid=&redirectUrl=~/Portals/Views/Test/index.html
var url="http://xxxxxxxxxxxx?sessionid="+desPassEncode+"&appid=&redirectUrl=~/Portals/Views/Test/index.html";

window.close();
window.open(url);

</script>
</html>
登录后复制

注意事项:
1、crypto-js.js使用到了这个js,要记得引入,很多地方可以下载的,除了这里面能用到des加密,也可以从网上找其他的des加密脚本,但是因为des加密模式的问题,要注意调用函数时参数的使用,确定自己要使用的是哪种des加密方法。
2、因为这里实现的是自动登录,涉及到了url的处理,由于使用了加密,密文中会含有特殊字符,直接通过url转跳,要把url中含有的特殊字符进行UrlEncode转码。
3、注意这里des的加密方式,这样进行转跳,跳进去的网站是.net实现的,因为des的加密模式有几种,java,.net等默认的des加密模式有可能不一致,就会导致加密后的密文不一样,所以要确定自己使用哪种模式,或者直接输出加密密文来进行比较。
4、使用js比较方便的地方是因为我这里用的jsp页面,所以对处理的数据可以任意写,而且不会影响后台的使用,我觉得这是js的好处,特别是进行像这种进行类似单点登录,自己系统用的java实现,而别人用的.net,直接用脚本,可以节省时间,不会对自己系统造成什么影响。
5、有一个地方要注意,这里对url进行转码时,使用到了VB脚本的一些函数,这种脚本已经很少有人会用了,而且有些浏览器已经不支持了,网络显示ie11不支持,但是我自己的电脑就是ie11,可以使用,所以这个也不是绝对的,有可能和使用到的函数有关。
6、除了des加密,还有md5,单独的base64加密,这些常用的加密方式,都可以直接用js脚本实现。
7、这里只有des的一种加密模式,还有其他的,crypto-js.js中都有,可以网络下其他加密方法的使用!

⑼ 到目前为止,有没有把 js 完全加密的方法

其实可以仿照vmprotect写一个js版本的,vmprotect思想来源于门电路 。
原理是,把加减乘除都用nor指令实现,nor = not not and
于是原来很容易看出逻辑的 and xor not or 都加密成了整齐划一的单一操作字符nor
再从nor还原回去变的极为困难 。
目前为止vmp虚拟机加密只能半自动甚至手工还原,还原vmp至今是仍然有很大难度(爆破是另一回事) 。
javascript也可以这么做,也就是在js虚拟机上再搞vmp虚拟机 。
但是似乎js界和搞加密解密的交集太少,没有人去做这个事情 。
也可能是js并没有那么高的价值值得如此保护。

⑽ 介绍一点js加密的方法

一:最简单的加密解密
大家对于JAVASCRIPT函数escape()和unescape()想必是比较了解啦(很多网页加密在用它们),分别是编码和解码字符串,比如例子代码用escape()函数加密后变为如下格式:
alert%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B
如何?还看的懂吗?当然其中的ASCII字符"alert"并没有被加密,如果愿意我们可以写点JAVASCRIPT代码重新把它加密如下:
%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B
呵呵!如何?这次是完全都加密了!
当然,这样加密后的代码是不能直接运行的,幸好还有eval(codeString)可用,这个函数的作用就是检查JavaScript代码并执行,必选项 codeString 参数是包含有效 JavaScript 代码的字符串值,加上上面的解码unescape(),加密后的结果如下:
<SCRIPT LANGUAGE="JavaScript">
var code=unescape("%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B");
eval(code)
</SCRIPT>
是不是很简单?不要高兴,解密也就同样的简单,解密代码都摆给别人啦(unescape())!呵呵

二:转义字符"\"的妙用
大家可能对转义字符"\"不太熟悉,但对于JavaScript提供了一些特殊字符如:\n (换行)、 \r (回车)、\' (单引号 )等应该是有所了解的吧?其实"\"后面还可以跟八进制或十六进制的数字,如字符"a"则可以表示为:"\141"或"\x61"(注意是小写字符"x"),至于双字节字符如汉字"黑"则仅能用十六进制表示为"\u9ED1"(注意是小写字符"u"),其中字符"u"表示是双字节字符,根据这个原理例子代码则可以表示为:
八进制转义字符串如下:
<SCRIPT LANGUAGE="JavaScript">
eval("\141\154\145\162\164\50\42\u9ED1\u5BA2\u9632\u7EBF\42\51\73")
</SCRIPT>
十六进制转义字符串如下:
<SCRIPT LANGUAGE="JavaScript">
eval("\x61\x6C\x65\x72\x74\x28\x22\u9ED1\u5BA2\u9632\u7EBF\x22\x29\x3B")
</SCRIPT>
这次没有了解码函数,因为JavaScript执行时会自行转换,同样解码也是很简单如下:
<SCRIPT LANGUAGE="JavaScript">
alert("\x61\x6C\x65\x72\x74\x28\x22\u9ED1\u5BA2\u9632\u7EBF\x22\x29\x3B")
</SCRIPT>
就会弹出对话框告诉你解密后的结果!

阅读全文

与js常用加密方式相关的资料

热点内容
cocos2dluapdf 浏览:491
假的加密锁靠谱吗 浏览:176
经营圣手服务器怎么调 浏览:749
arduino手机编程 浏览:481
西医pdf下载 浏览:29
后浪电影学院pdf 浏览:813
程序员怎么做到不被人嫉妒 浏览:669
cmd新建文件夹md命令 浏览:570
php数组中的数值排序 浏览:832
安卓手机怎么避免小孩内购 浏览:171
联想服务器出现黄色叹号怎么办 浏览:991
约翰编译器制作教程 浏览:130
大地pdf 浏览:109
pdfplus 浏览:577
汇编O命令 浏览:970
plt转pdf 浏览:365
魔兽60宏命令大全 浏览:479
php志愿者网站源码 浏览:875
贸易pdf 浏览:497
dbug命令 浏览:352