Rsa加密算法

96 阅读3分钟

RSA是一种非对称性加密算法,它包含一对公钥和密钥,公钥可以明文写死在客户端中,客户端数据需要通过公钥加密后传输,服务端通过秘钥来解密获取数据。

可以通过在线网站生成一对公钥秘钥 www.metools.info/code/c80.ht…

//公钥秘钥格式
const publicKey = `
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxWnKKauf4ySPUed25pT/
+fuJwYB4kYGhnHxtHWL4eN7rZAnsWAZKNXdvt7UVX77f4OzxkqhslYjfLQABWwIr
J5xXP/CVytxObqIyTksrWGx4N80z2UGGNkwDRxxMU4RI8vU2134vYPD+3AnLREZD
6v8gQQVEzVCeHOQjdbPtvY6ZnjgHklBP5zdFee+C5z9pmc9zA640DG7O2fdxgG98
RzUodsWX7DU27iVsn0J1Ns/Nak/GTr3hbQRf5dHJlVY9IfGGvNV6asA9y0dOfZsX
FG8RqkJq74H5FkuYwL+oa0Hb8ZYQHTNfXh7QpH+afHaCohIv13xnxYIbtqxdONUv
3wIDAQAB
-----END PUBLIC KEY-----
`

const privateKey = `
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDFacopq5/jJI9R
53bmlP/5+4nBgHiRgaGcfG0dYvh43utkCexYBko1d2+3tRVfvt/g7PGSqGyViN8t
AAFbAisnnFc/8JXK3E5uojJOSytYbHg3zTPZQYY2TANHHExThEjy9TbXfi9g8P7c
CctERkPq/yBBBUTNUJ4c5CN1s+29jpmeOAeSUE/nN0V574LnP2mZz3MDrjQMbs7Z
93GAb3xHNSh2xZfsNTbuJWyfQnU2z81qT8ZOveFtBF/l0cmVVj0h8Ya81XpqwD3L
R059mxcUbxGqQmrvgfkWS5jAv6hrQdvxlhAdM19eHtCkf5p8doKiEi/XfGfFghu2
rF041S/fAgMBAAECggEAGVkXEzitQ/4qxOqCkuLo51FMA+OaF5zcgnpbjF1r6CE/
ek3n4fmUx765Qo5m2y9oEbp63kjwAFddyKpqgiQKJIDnlxcuNKkLDRuYeAMg4q6y
1P9tO+U09X3XIedZSZP/xeqEizDxpnHrV5eOWQrop6DwpEin5/EFDFKi1vcufJs7
+f4VD0v5Jzfk3kkhihCkyH+06a5RJVPeBV6wDrxY88eBdQfgPEr8OPI8xBCfLKkv
TAnzzFiSpQhOxlt6LFWF/M0a2MTjsuQv8bBKR4TSmnAq08YzdZTQ3PZTQBRlrZ4t
8wKF4xVui7x2xduRZIdGDMSM02njvbiXxaPObx10AQKBgQDu2AnfYN2eRHk3hpQB
+5Ib7R5b7E2s7xq+lTL1myZheB9YYEibOFi4tlsT1hzcjOix+puAcE1Rwageyi7d
fiCzt2kF4WAgxUDit5HN8YteX4n8Exdp13V3uSSlSLdhW5jym4xEfs/vV1dEbl8+
0bXO1BEaUqyQGGyQLRbQGqZaAQKBgQDTl+gnmoYuPON4g1BQTO4bSqhYuttv+W4f
3inWLMO+qEDC5ht6GKwypvAb7sweTGABREjbt8rqGF0FTwqs0aS/1LuvAtUS1L8A
2XlzSftlX4m/9Gj/NuNkUVe9wxA5nT9cWvuPo4UgOY2jr/SiXU8PIUApM+3F3Fl+
FXoMMULJ3wKBgQC2ZFZNtkwnM4UZ6PSX+wQdvVsEuZSrrkBPL+KlemC56CCPvZ9U
oZfnHqK4qDaMGjMMzyL210vEVk3LjXxyeoIAm9xguDZPcDLXr3VxvrY+UFkwHWgw
1G+JCOK6MaiQeYF4K17XY7vou1sSD/M+JqlfE8Unw+CxfWVSSIx2SROmAQKBgFF7
0GVf9ohb3mWMfCNQXOmZqJby7oqCjcwr7ASUnJURik8D+lTcp4OiEhlPrr+EPfx+
5WfnsXbRBxGCTOQcn8tYCybsek2ULDIRjdm+BdgWIKARaVXPN2ZshNOJCPiG+91/
FB1OpXexckA1BIp6UHXNIj47xzdJEhWiA6wqVEQVAoGBAMwZV/7Q4Ev8Dn/hYhIf
SQPAZu+H6eJB2JiAYzwtmY9kTWjXFIGsnt7Ng3C4V5uDY2ScYHckcpo8C2+leAhP
WPXMCT1KbQZrQynGbUMRZQS8NvD2OM4cXORlce/IfnJp9Ve7gLjWGTs7gtyl/je1
d3GBXCRwkGZuR9fEUTxtIupR
-----END PRIVATE KEY-----
`
//业务代码
import JSEncrypt from 'jsencrypt'

const params = {
  name: 123
}
//客户端加密
function encrypt(){
  const jse = new JSEncrypt()
  jse.setPublicKey(publicKey)
  const result = jse.encrypt("the text that need to encrypt")
  decrypt(result)
}

//服务端加密
function decrypt(result){
  let jse = new JSEncrypt();
  jse.setPrivateKey(privateKey)
  return jse.decrypt(result);
}