㈠ js中常见的数据加密与解密的方法
加密在我们前端的开发中也是经常遇见的。本文只把我们常用的加密方法进行总结。不去纠结加密的具体实现方式(密码学,太庞大了)。
常见的加密算法基本分为这几类,
RSA加密:RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。(这才是正经的加密算法)
非对称加密算法:非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法
DES算法的入口参数有三个:Key、Data、Mode。其中Key为7个字节共56位,是DES算法的工作密钥;Data为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。
AES这个标准用来替代原先的DES
DES/AES我们合并在一起介绍其用法和特点
Base64是一种用64个字符来表示任意二进制数据的方法。base64是一种编码方式而不是加密算法。只是看上去像是加密而已(吓唬人)。
㈡ 怎样使网站加密
http://blogcup.com/blog_user1-3781-2005-135888.html
现在专业性的网站越来越多,许多网友们都在网上建立起了自己的小家。不过辛辛苦苦制作的网页被人拿去改头换面却是件非常痛心的事,所以大家都想保护自己独创的作品,为自己的网页上把锁,今天就让我带大家了解一下如何给我们的网页加上一把密码锁。
一、常用javaScript密码锁
1. 了解javascript
JavaScript是一种新的网页描述语言,是由Sun公司以及网景Netscape公司开发的,此一语言可以被嵌入HTML的文件之中,使用它可以让你设计交互性的网页内容。
2. javascript特点
使用javascript非常简单,只是一小段代码,就可以让网页发生千奇百怪的效果,而且使用javascript来加密的方法是网络中加密最常用的方法。
3. 使用javascript加密
使用javascript加密最简单的结果就是让浏览者不能使用鼠标右键,当他点击右键想对图片进行保存或者复制文字的时候就会弹出一个警告窗口或是弹出收藏夹等。
实现方法:
(1)利用弹出窗口封锁鼠标右键
将下面这段代码放在网页HTML代码的<head></head>标志中,就可以实现封锁右键,给网页加密。
<script language="javascript">
function click() {if (event.button==2) {alert('本站不准使用右键,
使用左键吧!^_^') }}
document.onmousedown=click</script>
(2)弹出“添加收藏夹”封锁鼠标右键
将下面这段代码放在网页的HTML代码的<head></head>标志中。实现点击右键出现“添加到收藏夹”选项。
<script language="javascript">
function click() {if (event.button==2) {window.external.addFavorite
('http://www.yesky.com/,' 天极网')}}
document.onmousedown=click</script>
(3)彻底封锁鼠标右键
将下面这段代码放在网页的HTML代码的<head></head>标志中能够实现彻底封锁鼠标右键的效果,由于这个脚本在右键按下时调用一个函数,所以可以改为很多种类型。即使按下左键,再按下右键,放开左键,再放开右键的方法也还是破解不了。
<script>
function DM(e){if(!ns){if(event.button>1)window.external.addFavorite
('http://www.popunet.com/,' 大众网络报')}else{if(e.which>1)return false}}ns=navigator.appName=="Netscape";if(ns)document.captureEvents
(Event.MOUSEMOVE|Event.MOUSEDOWN);document.onmousemove=DM;document.
onmousedown=DM;</script>
(4)禁止查看源文件
将下面这段代码放在网页的HTML代码的<head></head>标志中则可以实现禁止利用IE浏览器查看源文件。
<script language="JavaScript">
<!--
document.onmousedown=click
function click() {
if ( event.button==2) {alert('不准查看源文件') }
if ( event.button==3) {alert('不准查看源文件') }
}
//-->
</script>
(5)用乱码显示链接、调用地址加密。
利用某些函数把URL字符转换成ASCII码,从而达到隐藏链接Frame页面和*.js,*.asp等脚本的目的。返回ASCII码escape(character),ASCII码为%XX格式,XX是十六进制,如空格键为%20。返回字符unEscape(string)
如:
<!—var Words=" %3Cframeset%20BORDER%3D%220%22%20FRAMEBORDER%3D%220%22
%20FRAMESPACING%3D%220%22%20rows%3D%22100%25%22%3E%0D%0A%20%20%3Cframe
%20SRC%3D%22http%3A//XXX.XXX.COM/XXX/XXX/%22%20NAME%3D%22oos1%22%20"//
-->
</script>
利用javascript还可以使用调用脚本显示页面加密、密码校验等加密方法,但是由于代码繁杂而不经常使用,这里就不多讲了。
二、使用IIS的密码锁
不要以为只有javascript可以加密,使用IIS也可实现加密,只要你电脑上安装的Web服务器是IIS,而你又是管理员权限的用户时,就可以用一种简单的方法来实现密码验证。
(注意:使用Win 2000 Server版并安装了IIS及域用户管理器)
1. 启动“Internet 服务管理器”
步骤一:单击“开始”>“设置”>“控制面板”,双击进入到“管理工具”中,打开“Internet 服务管理器”,展开左窗口的“默认Web站点”,然后在其所展开的目录中选中我们想对其进行加密的目录(如:lastcoco),然后单击“属性”按钮,打开“lastcoco属性”对话框(如图1)。
图 1
步骤二:选择“lastcoco属性”对话框中“目录安全性”标签,单击“匿名访问及验证控件”域中的“编辑”按钮。这时会弹出“验证方法”对话框,在“验证方法”对话框中,取消“允许匿名访问”选项前面的勾选,然后勾选“基本验证(密码用明文送出)”选项,最后单击“确定”按钮退出(如图2)。
图 2
2. 使用“域用户管理器”设置用户的名称及密码
光对目录的安全设置了还不行,为了让上网的朋友们只有在输入用户名称和密码后才可以浏览放在该目录下的网页,我们还要使用“域用户管理器”设置用户的名称及密码。
单击“开始”>“程序”>“系统管理工具”(公用)>“域用户管理器”,启动“域用户管理器”(如图3)。在这里我们给域用户里添加新用户,选择“用户”>“新用户”,然后在“新用户”窗口中输入新用户的“用户名及密码”等等,然后取消“用户下次登录时须改变密码”的选项。
图 3
到此为止,利用IIS服务器来给网页加密就全部完成了,当用户想访问安全目录下的网页时。只要在出现的“输入网络密码”窗口中输入我们在“域用户管理器”中设置的新用名名及密码就可以进入安全设置目录(如图4)。
图 4
三、使用ASP程序密码锁
除了使用IIS服务器来给网页加密,我们还可以使用ASP程序来给网页进行加密,一般来说利用程序来进行密码验证的方法比较通用,现在大多数网站都使用ASP程序,它对Web服务器没有具体要求,而其加密就是借助数据库及ASP程序进行设计,来实现一种通用网页加密。
1. 打开Microsoft Access,建立一个“用户名及密码”的数据表,假设将这个表取名为User,数据库名为lastcoco.mdb,数据表的结构如下:
字段说明 字段名称 数据类型 数据长度
用户名称 ID 文本 15
密码 PWD 文本 15
2. 编辑一个PASS.ASP的验证文件,源代码如下:
<%
Function Check( ID, Pwd )
Dim conn, par, rs
Set conn = Server.CreateObject("ADODB.Connection")
par = "driver={Microsoft Access Driver (*.mdb)} "
conn.Open par && ";dbq=" && Server.MapPath("lastcoco.mdb ")
sql = "Select ? From users Where ID='" && ID && "' And Pwd = '" && Pwd &&"'"
Set rs = conn.Execute( sql )
If rs.EOF Then
Check= False
Else
Check= True
End If
End Function
%>
<%
If IsEmpty(Session("Passed")) Then Session("Passed") = False
Head = "请输入用户名和密码"
ID = Request("ID")
Pwd = Request("Pwd")
If ID = "" Or Pwd = "" Then
Head = "请输入用户名和密码"
Else If Not Check( ID, Pwd ) Then
Head = "用户名称或密码有错"
Else
Session("Passed") = True
End If
If Not Session("Passed") Then
%>
<html>
<head> <title></title> </head>
<body BGCOLOR="#FFFFFF">
<h2 ALIGN="CENTER"><%=Head%></h2>
<hr WIDTH="100%">
<form Action="<%=Request.ServerVariables("PATH_INFO")%>" Method="POST">
<table BORDER="1" CELLSPACING="0">
<tr>
<td ALIGN="RIGHT">用户名称:</td>
<td><input Type="Text" Name="ID" Size="12" Value="<%=ID%>"></td>
</tr>
<tr> <td ALIGN="RIGHT">密码:</td>
<td><input Type="Password" Name="Pwd" Size="12" Value="<%=Pwd%>"></td> </tr>
</table>
<p><input Type="Submit" Value="确定"> </p> </form>
<hr WIDTH="100%" align="center">
</body> </html>
<%Response.End
End If %>
3. 在需要加密网页的HTML代码最前面加上〈! --#i nclude file="pass.asp"--〉就可以了。由于这个验证合法性的页面具有通用性,所以非常方便使用。
四、使用软件密码锁
现在给网页加密的软件非常多,这里就不一一讲解,其基本原理都是利用javascript代码,只不过是这些软件都自动准备好了这些代码,只需使用者将网页源代码粘进去按一下加密按钮就OK了。
在这里我们介绍一款绿色的小软件“世纪鸟网页加密精灵”,大家不要小看这只鸟,通过这只小鸟,能更方便快速的对网页进行加密。
下载双击打开这只小鸟,只见XP风格的界面跳到眼前,左边竖着一排是加密选项按钮,分别是“网页代码加密”、“网页登录密码”“鼠标右键屏蔽”、“网页选择屏蔽”、“鼠标右键对话”、“框架包含限制”这些。右边则是网页代码加密对话框,在这个对话框中进行对网页的加密,而且在对话框上方给出每个选项的解释,在对话框下方则是建议。
这里我用实例给大家讲解使用“世纪鸟网页加密精灵”的“网页登录密码”选项来给网页加密。
1. 打开要加密的网页,复制出HTML源代码,然后打开“世纪鸟网页加密精灵”软件,选择“网页登录密码”选项,这时在右边就会出现一些输入框内的代码说明(如图5)。
图 5
2. 在“请输入登录密码”的输入框中输入长度小于10位的密码,然后单击“生成并复制密码页面程序”按钮,这时软件会自动在下方的javascript代码中加入你输入的登录密码做为验证信息,并将这段代码复制到你的剪贴版中(如图6)。
图 6
3. 接下来再将这段代码粘贴到网页中,并将网页改名为(你输入的登录密码).htm,这样就可以对此文件加密了。
OK,现在你的网页就再也不用担心被人偷用了
现在专业性的网站越来越多,许多网友们都在网上建立起了自己的小家。不过辛辛苦苦制作的网页被人拿去改头换面却是件非常痛心的事,所以大家都想保护自己独创的作品,为自己的网页上把锁,今天就让我带大家了解一下如何给我们的网页加上一把密码锁。
一、常用JavaScript密码锁
1. 了解javascript
JavaScript是一种新的网页描述语言,是由Sun公司以及网景Netscape公司开发的,此一语言可以被嵌入HTML的文件之中,使用它可以让你设计交互性的网页内容。
2. javascript特点
使用javascript非常简单,只是一小段代码,就可以让网页发生千奇百怪的效果,而且使用javascript来加密的方法是网络中加密最常用的方法。
3. 使用javascript加密
使用javascript加密最简单的结果就是让浏览者不能使用鼠标右键,当他点击右键想对图片进行保存或者复制文字的时候就会弹出一个警告窗口或是弹出收藏夹等。
实现方法:
(1)利用弹出窗口封锁鼠标右键
将下面这段代码放在网页HTML代码的<head></head>标志中,就可以实现封锁右键,给网页加密。
<script language="javascript">
function click() {if (event.button==2) {alert('本站不准使用右键,
使用左键吧!^_^') }}
document.onmousedown=click</script>
(2)弹出“添加收藏夹”封锁鼠标右键
将下面这段代码放在网页的HTML代码的<head></head>标志中。实现点击右键出现“添加到收藏夹”选项。
<script language="javascript">
function click() {if (event.button==2) {window.external.addFavorite
('http://www.yesky.com/,' 天极网')}}
document.onmousedown=click</script>
(3)彻底封锁鼠标右键
将下面这段代码放在网页的HTML代码的<head></head>标志中能够实现彻底封锁鼠标右键的效果,由于这个脚本在右键按下时调用一个函数,所以可以改为很多种类型。即使按下左键,再按下右键,放开左键,再放开右键的方法也还是破解不了。
<script>
function DM(e){if(!ns){if(event.button>1)window.external.addFavorite
('http://www.popunet.com/,' 大众网络报')}else{if(e.which>1)return false}}ns=navigator.appName=="Netscape";if(ns)document.captureEvents
(Event.MOUSEMOVE|Event.MOUSEDOWN);document.onmousemove=DM;document.
onmousedown=DM;</script>
(4)禁止查看源文件
将下面这段代码放在网页的HTML代码的<head></head>标志中则可以实现禁止利用IE浏览器查看源文件。
<script language="JavaScript">
<!--
document.onmousedown=click
function click() {
if ( event.button==2) {alert('不准查看源文件') }
if ( event.button==3) {alert('不准查看源文件') }
}
//-->
</script>
(5)用乱码显示链接、调用地址加密。
利用某些函数把URL字符转换成ASCII码,从而达到隐藏链接Frame页面和*.js,*.asp等脚本的目的。返回ASCII码escape(character),ASCII码为%XX格式,XX是十六进制,如空格键为%20。返回字符unEscape(string)
如:
<!—var Words=" %3Cframeset%20BORDER%3D%220%22%20FRAMEBORDER%3D%220%22
%20FRAMESPACING%3D%220%22%20rows%3D%22100%25%22%3E%0D%0A%20%20%3Cframe
%20SRC%3D%22http%3A//XXX.XXX.COM/XXX/XXX/%22%20NAME%3D%22oos1%22%20"//
-->
</script>
利用javascript还可以使用调用脚本显示页面加密、密码校验等加密方法,但是由于代码繁杂而不经常使用,这里就不多讲了。
二、使用IIS的密码锁
不要以为只有javascript可以加密,使用IIS也可实现加密,只要你电脑上安装的Web服务器是IIS,而你又是管理员权限的用户时,就可以用一种简单的方法来实现密码验证。
(注意:使用Win 2000 Server版并安装了IIS及域用户管理器)
1. 启动“Internet 服务管理器”
步骤一:单击“开始”>“设置”>“控制面板”,双击进入到“管理工具”中,打开“Internet 服务管理器”,展开左窗口的“默认Web站点”,然后在其所展开的目录中选中我们想对其进行加密的目录(如:lastcoco),然后单击“属性”按钮,打开“lastcoco属性”对话框(如图1)。
图 1
步骤二:选择“lastcoco属性”对话框中“目录安全性”标签,单击“匿名访问及验证控件”域中的“编辑”按钮。这时会弹出“验证方法”对话框,在“验证方法”对话框中,取消“允许匿名访问”选项前面的勾选,然后勾选“基本验证(密码用明文送出)”选项,最后单击“确定”按钮退出(如图2)。
图 2
2. 使用“域用户管理器”设置用户的名称及密码
光对目录的安全设置了还不行,为了让上网的朋友们只有在输入用户名称和密码后才可以浏览放在该目录下的网页,我们还要使用“域用户管理器”设置用户的名称及密码。
单击“开始”>“程序”>“系统管理工具”(公用)>“域用户管理器”,启动“域用户管理器”(如图3)。在这里我们给域用户里添加新用户,选择“用户”>“新用户”,然后在“新用户”窗口中输入新用户的“用户名及密码”等等,然后取消“用户下次登录时须改变密码”的选项。
图 3
到此为止,利用IIS服务器来给网页加密就全部完成了,当用户想访问安全目录下的网页时。只要在出现的“输入网络密码”窗口中输入我们在“域用户管理器”中设置的新用名名及密码就可以进入安全设置目录(如图4)。
图 4
三、使用ASP程序密码锁
除了使用IIS服务器来给网页加密,我们还可以使用ASP程序来给网页进行加密,一般来说利用程序来进行密码验证的方法比较通用,现在大多数网站都使用ASP程序,它对Web服务器没有具体要求,而其加密就是借助数据库及ASP程序进行设计,来实现一种通用网页加密。
1. 打开Microsoft Access,建立一个“用户名及密码”的数据表,假设将这个表取名为User,数据库名为lastcoco.mdb,数据表的结构如下:
字段说明 字段名称 数据类型 数据长度
用户名称 ID 文本 15
密码 PWD 文本 15
2. 编辑一个PASS.ASP的验证文件,源代码如下:
<%
Function Check( ID, Pwd )
Dim conn, par, rs
Set conn = Server.CreateObject("ADODB.Connection")
par = "driver={Microsoft Access Driver (*.mdb)} "
conn.Open par && ";dbq=" && Server.MapPath("lastcoco.mdb ")
sql = "Select ? From users Where ID='" && ID && "' And Pwd = '" && Pwd &&"'"
Set rs = conn.Execute( sql )
If rs.EOF Then
Check= False
Else
Check= True
End If
End Function
%>
<%
If IsEmpty(Session("Passed")) Then Session("Passed") = False
Head = "请输入用户名和密码"
ID = Request("ID")
Pwd = Request("Pwd")
If ID = "" Or Pwd = "" Then
Head = "请输入用户名和密码"
Else If Not Check( ID, Pwd ) Then
Head = "用户名称或密码有错"
Else
Session("Passed") = True
End If
If Not Session("Passed") Then
%>
<html>
<head> <title></title> </head>
<body BGCOLOR="#FFFFFF">
<h2 ALIGN="CENTER"><%=Head%></h2>
<hr WIDTH="100%">
<form Action="<%=Request.ServerVariables("PATH_INFO")%>" Method="POST">
<table BORDER="1" CELLSPACING="0">
<tr>
<td ALIGN="RIGHT">用户名称:</td>
<td><input Type="Text" Name="ID" Size="12" Value="<%=ID%>"></td>
</tr>
<tr> <td ALIGN="RIGHT">密码:</td>
<td><input Type="Password" Name="Pwd" Size="12" Value="<%=Pwd%>"></td> </tr>
</table>
<p><input Type="Submit" Value="确定"> </p> </form>
<hr WIDTH="100%" align="center">
</body> </html>
<%Response.End
End If %>
3. 在需要加密网页的HTML代码最前面加上〈! --#i nclude file="pass.asp"--〉就可以了。由于这个验证合法性的页面具有通用性,所以非常方便使用。
四、使用软件密码锁
现在给网页加密的软件非常多,这里就不一一讲解,其基本原理都是利用javascript代码,只不过是这些软件都自动准备好了这些代码,只需使用者将网页源代码粘进去按一下加密按钮就OK了。
在这里我们介绍一款绿色的小软件“世纪鸟网页加密精灵”,大家不要小看这只鸟,通过这只小鸟,能更方便快速的对网页进行加密。
下载双击打开这只小鸟,只见XP风格的界面跳到眼前,左边竖着一排是加密选项按钮,分别是“网页代码加密”、“网页登录密码”“鼠标右键屏蔽”、“网页选择屏蔽”、“鼠标右键对话”、“框架包含限制”这些。右边则是网页代码加密对话框,在这个对话框中进行对网页的加密,而且在对话框上方给出每个选项的解释,在对话框下方则是建议。
这里我用实例给大家讲解使用“世纪鸟网页加密精灵”的“网页登录密码”选项来给网页加密。
1. 打开要加密的网页,复制出HTML源代码,然后打开“世纪鸟网页加密精灵”软件,选择“网页登录密码”选项,这时在右边就会出现一些输入框内的代码说明(如图5)。
图 5
2. 在“请输入登录密码”的输入框中输入长度小于10位的密码,然后单击“生成并复制密码页面程序”按钮,这时软件会自动在下方的javascript代码中加入你输入的登录密码做为验证信息,并将这段代码复制到你的剪贴版中(如图6)。
图 6
3. 接下来再将这段代码粘贴到网页中,并将网页改名为(你输入的登录密码).htm,这样就可以对此文件加密了。
OK,现在你的网页就再也不用担心被人偷用了
㈢ 记录一下前端使用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加密库-CryptoJS
CryptoJS是JavaScript的一个加解密库集合,可以说平时开发磨肆中需要用到的加解密方法,它这里都包含了
1、MD5加密,这是一种不可逆的加密
2、SHA-1加密,是现有 SHA 哈希函数中最成熟的,它用于各种安全应用程序和协议
3、SHA-2加密,不像 SHA-1 那样广泛使用,尽管它似乎提供了更好的安全性
4、AES加解密瞎衫轿, 是美国联邦信息处理标准 (FIPS)提出的高级加密标准
5、DES加解密, DES 是以前占主导地位的加密算法,并作为官方联邦信息处理标准 (FIPS) 发布,由于密钥大小较小,DES 现在被认塌孙为是不安全的
6、转Base64
好了常用的加解密方法就介绍到这了
觉得效果不错的请帮忙加个关注点个赞,经常分享前端实用开发技巧