非对称加密算法(公钥和私钥)

非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。

公钥(Public Key)与私钥(Private Key)是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分。公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。通过这种算法得到的密钥对能保证在世界范围内是唯一的。使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。比如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。(此处引用了 百度百科 的词条解释)

下面来说说具体是如何使用的。
首先在页面中引入 jsencrypt 文件(可以使用 CDN加速)
接下来可以使用密钥生成工具来生成公钥和私钥(推荐 加密解密工具)
完整案例(ps:公钥和私钥可以使用密钥生成工具来生成):

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title><script src="https://cdn.bootcss.com/jsencrypt/2.3.1/jsencrypt.js"></script>
</head>
<body><script>var public_key = "-----BEGIN PUBLIC KEY-----" +
"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD3OhpxaOoSpObJ3CXh31T1kE5I"+
"b5DfCUB59vX7fxliFDEIknR1nkAk+YQltVF/RIcaoT8ni/NGBUJxp19nojpLUes2"+
"kqaVo5H8F7WOw2okHwtCGGEb+MMol11qCKG1nGl7cZtEu+2T/O1A4wYzvg6XUsXJ"+
"+HPnc2/15D410bK94QIDAQAB" + 
"-----END PUBLIC KEY-----";var private_key = "-----BEGIN PRIVATE KEY-----" +
"MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAPc6GnFo6hKk5snc" +
"JeHfVPWQTkhvkN8JQHn29ft/GWIUMQiSdHWeQCT5hCW1UX9EhxqhPyeL80YFQnGn" +
"X2eiOktR6zaSppWjkfwXtY7DaiQfC0IYYRv4wyiXXWoIobWcaXtxm0S77ZP87UDj" +
"BjO+DpdSxcn4c+dzb/XkPjXRsr3hAgMBAAECgYB3/nKRMwvRaso9laWpYN16psTo" +
"MYZOSs5JpE01+TWXvhcigvsVj26ww46ZQs1AiUFN8o+VoT69cJYUVdlfkoTZz7nc" +
"a8aH/8CVjEANjD8DGmzOJJIFpWXP0wMYta09SdCGKnKbmmlDX1MHAauA7oZy81gy" +
"8Di0DTfTLv3oW4YCBQJBAP5OfbZOorq7sPElk+W/oJhn5kf5Ym5QZc2KlpOKSTw4" +
"uUIBoA//PbdpVTzz9UJSQF/D6sgLBCeDnd6OGg368pcCQQD434s1Bnbc45xTEC/R" +
"zorB8eD3QHDIfrXfaLTy+KPPaGUP9QUu+m9YMQwVsYSW7UzRhKqPQjsgHFbO9eXx" +
"nvpHAkEArK7z4lWnXpGQ508TDNGA5by3vGv1kN77IgVXljwy2rfR5KZh4Dr7142p" +
"Gci25CAiImVRCiGg4owXKUbpHlEnZQJBAMsvpzW5e13ILp7aPlBq8np5ghQbdnka" +
"il5F3EXqncL+FlS61GqQaEt2b8leT0PxpaABUkb36dHDkVQTCpMEGo0CQERzIpg1" +
"F1uePVCsDQcRJ3TZ6CKeRsWzJUmuz10s+v8wIKzN1Dxtyok4qEDAemR81LJPsldw" +
"9SocEoKudNJ4NLA=" +
"-----END PRIVATE KEY-----";// 采用公钥进行加密var encrypt = new JSEncrypt();encrypt.setPublicKey(public_key);var encrypted = encrypt.encrypt('世上无难事,只怕有心人'); // 加密console.log(encrypted);// 采用私钥进行解密var decrypt = new JSEncrypt();decrypt.setPrivateKey(private_key);var uncrypted = decrypt.decrypt(encrypted); // 解密console.log(uncrypted)</script>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/406811.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux:定时器

引子&#xff1a;使用OK6410 通过 IMU_EV30 采集 ADIS16405 的数据&#xff0c;采集频率为100Hz&#xff0c;需要10ms的定时器。首先考虑了a POSIX per-process timer&#xff0c;后发现板子负担轻的时候还行&#xff0c;负担重了定时很不精确&#xff0c;最后使用PWM定时器解决…

RHEL5+Postfix+MySql+IMAP+MailDrop+ExtMail(5)

十三、安装Extman-0.2.2<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />1、安装及基本配置#tar zxvf extman-0.2.2.tar.gz# mv extman-0.2.2 /var/www/extsuite/extman修改配置文件以符合本例的需要&#xff1a;# vim /var/www…

如何解决Android SDK无法下载Package的问题(.net)

有些用户在安装好Android SDK后&#xff0c;打开Android SDK Manager下载API时一直显示“Done loading packages”却迟迟不能前进&#xff0c;界面显示的Package空空如也。自己也出现了这种情况&#xff0c;于是乎&#xff0c;把自己成功解决此问题的方法分享给大家。 如何解决…

C# 中 for和foreach 性能比较,提高编程性能

From: http://www.cnblogs.com/yzxchoice/archive/2007/12/15/995949.html 在很多情况下for和foreach具有同样的功能,选择for还是foreach很多人可能都是看自己的喜好&#xff0c;本测试试图通过 来真是测试数据来比较他们的执行效率。希望能给大家对他们的时候带来一些帮助。 …

AES与RSA混合加密完整实例

前段时间看到一篇文章讲如何保证API调用时数据的安全性&#xff08;传送门&#xff1a;https://blog.csdn.net/ityouknow/article/details/80603617&#xff09;&#xff0c;文中讲到利用RSA来加密传输AES的秘钥&#xff0c;用AES来加密数据&#xff0c;并提供如下思路&#xf…

Linux: 两个USB摄像头的数据采集问题

引子&#xff1a; 课题需要&#xff0c;同时采集两个摄像头数据&#xff0c;频率不高&#xff0c;但要同时。中间遇到的问题&#xff0c;唉一言难尽啊&#xff01; 为了图省事使用UVC摄像头&#xff0c;但是板子是USB1.1接口的&#xff0c;故挑选兼容USB1.1的UVC驱动的摄像头&…

获取指定日期的常用前后节点(月初月末周一周末等等)

获取指定日期的常用前后节点&#xff08;月初月末周一周末等等&#xff09; 原文:获取指定日期的常用前后节点&#xff08;月初月末周一周末等等&#xff09;注&#xff1a;周节点方面是根据中国习惯&#xff0c;视周一为起&#xff0c;周日为末。 /*-------------------------…

DB2在linux安装

linux下安装DB2的详细步骤第一步下载db2v8.1数据包,IBM网站有了,但是要钱了,呵呵第二步把下载下来的包(名称有可能是:DB2_V81_PE_LNX_32_NLV.tar)放进opt目录第三步用命令解压DB2_V81_PE_LNX_32_NLV.tar如下:linux:~#cd /optlinux:/opt # tar -xvf DB2_V81_PE_LNX_32_NLV.tar第…

封送处理您的数据:利用 COM 和 Windows 2000 的高效传输数据的技术

From: http://blog.csdn.net/zhoujianhei/article/details/1844319 摘要 您所选择的数据传输方式在分布式应用程序中是非常重要的。Windows 2000 提供了几种新的特性&#xff0c;可以更加高效地进行数据传输。轻量级的处理程序使得您能够编写智能代理&#xff0c;它们能够缓存结…

Linux:驱动程序直接编译到内核(源自国嵌的视频教学)

引子&#xff1a;前面的文章实现了可加载的内核模块&#xff0c;通过这个内核模块实现对PWM定时器的控制和中断处理程序的注册。这里讨论一下将内核模块直接编译进内核的过程&#xff0c;首先声明来源于国嵌的视频教学。 其实很简单&#xff0c;第一步把冰箱门打开...&#xf…

(转)mysql基础命令

Sql代码 asc 按升序排列 desc 按降序排列 下列语句部分是Mssql语句&#xff0c;不可以在access中使用。 SQL分类&#xff1a; DDL—数据定义语言(CREATE&#xff0c;ALTER&#xff0c;DROP&#xff0c;DECLARE) DML—数据操纵语言(SELECT&#xff0c;DELETE&#xff0c;UPDATE&…

JQuery 对控件的事件操作

JQuery是非常棒的js类库&#xff0c;有丰富的UI库和插件&#xff0c;不过我钟爱他的是他的选择器&#xff0c;感觉其他功能有时跟后台人员距离很远&#xff0c;所以一般我也只使用一下他的选择器。 今天突然对他的事件产生了兴趣&#xff0c;先前也碰到过&#xff0c;也没整理&…

搭建VS2008+OpenCV2.1开发环境

引子&#xff1a;如题&#xff08;非原创&#xff0c;非转载&#xff0c;非翻译&#xff09;。其实本菜鸟很纠结于CSDN博客文章的分类&#xff1a;原创&#xff1b;转载&#xff1b;翻译。菜鸟以博客备忘&#xff0c;首先Google&#xff0c;然后试&#xff0c;最后写博客&#…

repalce

1、replace基本用法 <script>/*要求将字符串中所有的a全部用A代替*/var str "javascript is great script language!";//只会将第一个匹配到的a替换成Aconsole.log(str.replace("a", "A")); // > jAvascript is great script language…

Win8环境下 IIS6部署MVC网站出现的无法显示此网页错误

在Win7环境下做好的网站&#xff0c;新的Win8环境发布出现如下图错误&#xff1a; 解决方法如下&#xff1a; 运行&#xff1a; 转载于:https://www.cnblogs.com/xiashenbin/p/4098274.html

软件质量管理之痛

相信不少软件开发公司都存在质量管理部门。而且&#xff0c;如果一个公司稍微正规的话,一定会使用一个缺陷跟踪软件系统&#xff0c;比如开源的Bugzilla&#xff0c;或是IBM的ClearQuest等等。那质量管理部门是如何跟踪和控制软件质量的呢&#xff1f;毫无疑问&#xff0c;需要…