‘壹’ 小程序RSA加密、解密、加签、验签
npm install wxapp_rsa
var RSA = require('/wxapp_rsa.js')
// RSA加签
var sign_rsa = new RSA.RSAKey();
//privateKey_pkcs1需要是-----BEGIN PRIVATE KEY-----开头的私钥
sign_rsa = RSA.KEYUTIL.getKey(privateKey_pkcs1);
console.log('签名RSA:')
console.log(sign_rsa)
var hashAlg = 'MD5withRSA';
var hSig = sign_rsa.signString("12345678901234567890", hashAlg);
hSig = RSA.hex2b64(hSig); // hex 转 b64
console.log("签名结果:" + hSig)
// RSA 验签
var verify_rsa = new RSA.RSAKey();
verify_rsa = RSA.KEYUTIL.getKey(publicKey_pkcs1);
console.log('验签RSA:')
console.log(verify_rsa)
hSig = RSA.b64tohex(hSig)
var ver = verify_rsa.verifyString("12345678901234567890", hSig)
console.log('验签结果:' + ver)
// RSA加密 【加密字段长度不大于117】
var encrypt_rsa = new RSA.RSAKey();
encrypt_rsa = RSA.KEYUTIL.getKey(rsa_public_key);
console.log('加密RSA:')
console.log(encrypt_rsa)
var encStr = encrypt_rsa.encrypt('1234567890')
console.log(encStr)
encStr = RSA.hex2b64(encStr);
console.log("加密结果:" + encStr)
// RSA 解密
var decrypt_rsa = new RSA.RSAKey();
decrypt_rsa = RSA.KEYUTIL.getKey(rsa_public_key_private);
console.log('解密RSA:')
console.log(decrypt_rsa)
encStr = RSA.b64tohex(encStr)
var decStr = decrypt_rsa.decrypt(encStr)
console.log("解密结果:" + decStr)
‘贰’ 什么是SSL加密,什么是TLS加密
SSL加密是Netscape公司所提出的安全保密协议,在浏览器和Web服务器之间构造安全通道来进行数据传输,SSL运行在TCP/IP层之上、应用层之下,为应用程序提供加密数据通道,它采用了RC4、MD5以及RSA等加密算法,使用40 位的密钥,适用于商业信息的加密。
TLS是安全传输层协议。安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性。该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。较低的层为 TLS 记录协议,位于某个可靠的传输协议上面。
(2)加密加签英文扩展阅读:
SSL加密并不保护数据中心本身,而是确保了SSL加密设备的数据中心安全,可以监控企业中来往于数据中心的最终用户流量。
从某个角度来看,数据中心管理员可以放心将加密装置放在某个地方,需要使用时再进行应用,数据中心应该会有更合理的方法来应对利用SSL的恶意攻击,需要找到SSL加密应用的最佳实践。
TLS协议是可选的,必须配置客户端和服务器才能使用。主要有两种方式实现这一目标:一个是使用统一的TLS协议通信端口(例如:用于HTTPS的端口443)。另一个是客户端请求服务器连接到TLS时使用特定的协议机制(例如:邮件、新闻协议和STARTTLS)。
一旦客户端和服务器都同意使用TLS协议,他们通过使用一个握手过程协商出一个有状态的连接以传输数据。通过握手,客户端和服务器协商各种参数用于创建安全连接。
参考资料来源:网络-SSL加密技术
参考资料来源:网络-TLS
‘叁’ 什么是SSL加密,什么是TLS加密
SSL加密的英文全称是Secure Socket Layer,翻译过来就是安全套接层。
它是在传输通信协议(TCP/IP)上实现的一种网络安全协议,广泛支持各种类型的网络,并同时提供三种网络基本安全服务,而且这三种服务都是使用公开密钥技术。
TLS加密的英文全称是Transport Layer Security,翻译过来就是安全传输层协议。
TLS是用于在两个通信应用程序之间,为通信提供保密性和数据完整性。这个协议一共有两层,分别是记录协议和握手协议。通过这个协议可以对网站、网络传真、电子邮件等数据传输进行加密、保密。
(3)加密加签英文扩展阅读:
1、SSL
SSL协议优势
SSL协议的优势在于它是与应用层协议独立无关的。
高层的应用层协议(例如:HTTP、FTP、Telnet等等)能透明的建立于SSL协议之上。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商以及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。
SSL体系结构
SSL被设计成使用TCP来提供一种可靠的端到端的安全服务,不是单个协议,而是二层协议。
低层是SSL记录层,用于封装不同的上层协议,另一层是被封装的协议,即SSL握手协议,它可以让服务器和客户机在传输应用数据之前,协商加密算法和加密密钥,客户机提出自己能够支持的全部加密算法,服务器选择最适合它的算法。
2、TLS
优势
TLS协议的优势是与高层的应用层协议(如HTTP、FTP、Telnet等)无耦合。
应用层协议能透明地运行在TLS协议之上,由TLS协议进行创建加密通道需要的协商和认证。应用层协议传送的数据在通过TLS协议时都会被加密,从而保证通信的私密性。
TLS协议是可选的,必须配置客户端和服务器才能使用。
主要有两种方式实现这一目标:一个是使用统一的TLS协议通信端口(例如:用于HTTPS的端口443);另一个是客户端请求服务器连接到TLS时使用特定的协议机制(例如:邮件、新闻协议和STARTTLS)。
算法
在客户端和服务器开始交换TLS所保护的加密信息之前,他们必须安全地交换或协定加密密钥和加密数据时要使用的密码。
参考资料来源:网络-SSL安全套接层
参考资料来源:网络-TLS安全传输层
‘肆’ 瀵嗙爜镄勮嫳鏂囨槸浠涔
灏嗗崟璇嶆媶鎴恜ass鍜寃ord杩涜屾湕璇汇
瀵嗙爜鑻辫鏄痯assword锛屽彲浠ュ皢鍗曡瘝𨰾嗗垎杩涜屾湕璇伙纴𨰾呜В鎴恜ass鍜寃ord锛宲ass璇讳綔钬渁钬濓纴word璇讳綔钬渨o钬濓纴鍐嶅皢鍓嶅悗杩炶疮渚濇¤诲嚭鍗冲彲銆
瀵嗙爜鏄閲囩敤鐗瑰畾鍙樻崲镄勬柟娉曪纴瀵逛俊鎭绛夎繘琛屽姞瀵嗕缭鎶ゃ佸畨鍏ㄨよ瘉镄勬妧链銆佷骇鍝佸拰链嶅姟銆傚瘑镰佹槸缃戠粶瀹夊叏镄勬妧链镙稿绩鍜屽熀纭鏀鎾戯纴婊¤冻缃戠粶涓庝俊鎭绯荤粺瀵逛缭瀵嗘с佸畬鏁存с佺湡瀹炴у拰涓嶅彲钖﹁ゆх瓑瀹夊叏闇姹伞
‘伍’ 英文bitlocker是什么意思
Bitlocker可以拆分为bit locker,直接翻译的话就是比特锁,意思是每个bit都加密。它是win操作系统当中自带的一种加密软件。
Bitlocker使用AES加密算法加密整个卷来保护数据。简单来说,BitLocker会将Windows的安装分区或者其他用于保存文件的分区进行加密,并将密钥保存在硬盘之外的地方,并对早期启动组件完整性检查,合并到一起来增强数据保护。
(5)加密加签英文扩展阅读
有三种认证机制可以用来构建Bitlocker。
1、透明运行模式:此模式利用TPM硬件来提供透明的用户体验。所谓透明,就是用户可以在毫无知觉的情况下正常的使用电脑,可以在系统盘加密的情况且未检测到对启动组件的修改的情况下通过TPM硬件提供的密钥正常登录到windows。
由于这种方式允许攻击者物理接触计算机并且允许攻击者启动已关闭的计算机,所以这种方式容易受到冷启动攻击。
2、用户认证模式:此模式要求用户在预启动环境下提供引导PIN或密码进行认证。
USB密钥认证模式:此模式下用户必须将包含启动密钥的USB设备插入计算机才能启动受保护的操作系统。并且此模式下要求计算机BIOS支持在预加载阶段读取USB设备。
密钥还可以通过智能卡设备获取,使用智能卡设备比单纯的将密钥保存在USB设备中要安全,因为智能卡使用内置的加密处理器将密钥加密存储,防止密钥因智能卡内容泄露被简单的获取到。