微信小程式-RSA簽名、驗籤、加密、解密
title: 【小程式】RSA簽名
type: categories
date: 2017-05-27 17:01:15
categories: 小程式
tags: [RSA, 簽名]
一個適用於微信小程式的RSA簽名加密庫。
使用
1、引入檔案
var RSA = require('../../utils/wxapp_rsa.js')
2、呼叫
var privateKey_pkcs1 = '-----BEGIN RSA PRIVATE KEY-----MIICXQIBAAKBgQCk7WKdggwBOtteLL5sPom8RYCjuw0hy6R1jH39tCaep1Dns02bi4CYHk2dSR / t0ABgF5pHYeMxHa74Dp6Z6SjfAKMUu53BbTR615ehK + 03BjtzJzviTF1 / NtLmGaR3aawrDp7oQgq33dfIYbWLuAMkHNiWaoXaGyHh3a8jS2vxfQIDAQABAoGAIKRnLzts + tVWU5ZRfgUGp7 + tzToZSEYQ378VtJ / yQNZmueUQCCgdJH5i6C1v51aSrHIfc99Y4wC3/ 5qNI3M1RlRpIakmcaiEv1m6huDPLKFq6Y1e+ AZ0Cb0xo3bny + VTOvfGgcAdSa6++K47bGaxyKzwGeNZQkltm5sgbVcKvkECQQDVjWbSU8P8nDb+TP5Aqr + DaMVA425wv2ra2jhxd6KqKxgHHB7yYWlODiYNrtALOEG9zfSpHVQWhZpiKq8XcWwRAkEAxbWzPAqZxaZ / XTs65uCL0 + iqif0qCSDUNis61wYm2UwOh4LqBZIFop94B3ybEXbCvUl0v26H0fgXjFUErvlKrQJBAKjbAe5U5accLi + t2WxwlrXlZfME4hKsiGU8H10455n+ MSWOCrpEY + ugLF6tVztH5FOcQlRmKFMWmRf + ACxdNsECQDBjkEKZtZkSbwm6fWgUfSSYRWUQeUFSr52yZuxJrShx3Px9phlG6 + opbY8niCx2DKOXXuObgdJ6DglipYrNqOECQQCndP + zU / jwlvjQzEabKdP05uFc5JV6ySFBQwuoENbEvW3uz + Yz31xDYbrwIzrysVDovlj0ExL6LC + JRvpJmHcN-----END RSA PRIVATE KEY-----'
var publicKey_pkcs1 = '-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCk7WKdggwBOtteLL5sPom8RYCjuw0hy6R1jH39tCaep1Dns02bi4CYHk2dSR / t0ABgF5pHYeMxHa74Dp6Z6SjfAKMUu53BbTR615ehK + 03BjtzJzviTF1/ NtLmGaR3aawrDp7oQgq33dfIYbWLuAMkHNiWaoXaGyHh3a8jS2vxfQIDAQAB-----END PUBLIC KEY-----'
// 加簽
var sign_rsa = new RSA.RSAKey();
sign_rsa = RSA.KEYUTIL.getKey(privateKey_pkcs1);
console.log('簽名RSA:')
console.log(sign_rsa)
var hashAlg = 'sha1';
var hSig = sign_rsa.signString("signData", hashAlg);
hSig = RSA.hex2b64(hSig); // hex 轉 b64
console.log("簽名結果:" + hSig)
// 驗籤
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("signData", hSig)
console.log('驗簽結果:' + ver)
// 加密
var encrypt_rsa = new RSA.RSAKey();
encrypt_rsa = RSA.KEYUTIL.getKey(publicKey_pkcs1);
console.log('加密RSA:')
console.log(encrypt_rsa)
var encStr = encrypt_rsa.encrypt('123456')
encStr = RSA.hex2b64(encStr);
console.log("加密結果:" + encStr)
// 解密
var decrypt_rsa = new RSA.RSAKey();
decrypt_rsa = RSA.KEYUTIL.getKey(privateKey_pkcs1);
console.log('解密RSA:')
console.log(decrypt_rsa)
encStr = RSA.b64tohex(encStr)
var decStr = decrypt_rsa.decrypt(encStr)
console.log("解密結果:" + decStr)
需要注意的是:區分RSA私鑰的型別,有pkcs1和pkcs8。pkcs8格式的私鑰主要用於java中。
// pkcs1格式:
-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY------
// pkcs8格式:
-----BEGIN PRIVATE KEY-----
-----END PRIVATE KEY-----
相關推薦
微信小程式-RSA簽名、驗籤、加密、解密
title: 【小程式】RSA簽名 type: categories date: 2017-05-27 17:01:15 categories: 小程式 tags: [RSA, 簽名] 一個適用於微信小程式的RSA簽名加密庫。 使
微信小程式 RSA 加密、解密,分段加解密
雖然說微信小程式本身有自己的安全機制,但我們有時候業務需要。需要自己做一層加密,AES比較簡單,就不說了。 這裡說一下RSA非對稱加密。一般網上搜的都不全,要麼就沒有分段加解密。這裡做一下整理,方便大家使用。 主要新增兩個方法: function RSAEncryp
微信小程式表單輸入驗證(手機號、郵箱驗證、輸入非空)
wxml: <form bindsubmit='formSubmit'> <view class='form'> <text class='label'>姓名<text class='re
微信小程式開發入門第七章:收藏、評論、點贊及計數功能
本章內容有一定的難度,但其中的技巧和知識還是很豐富的。本章通過編寫幾乎所有內容型應用都會附帶的“評論”“點贊”“閱讀計數”“收藏”等功能,來學習使用小程式的互動反饋元件、快取的應用、圖片選擇和預覽、遮蔽關鍵字、錄音、拍照以及播放錄音等功能7.1 收藏、評論、點贊、計數
微信小程式rsa分段加密
前段時間公司要開發app配套的微信小程式,而app的介面是使用rsa加密的。 找了很多資料,發現rsa的祕鑰長度限制了加密時明文的長度。又不能重新寫一套介面。糾結了三天,終於集合各方資料弄出了一個微信小程式試用的rsa分段加密程式. 裡面有好幾種加密
微信小程式-合法域名校驗出錯
微信小程式開發,遇到這個問題怎麼辦? 產生原因是因為發起了wx.request請求 而請求的域名沒有在微信公眾平臺後臺設定。 1.開發者自己手動設定不檢驗 不管你有沒有拿到App ID ,我相信很多人都會和我一樣做一件事,就是二話不說先大概瞭解下文件
微信小程式入門從這裡出發(登入註冊、開發工具、檔案及結構介紹)
![](http://image.ideal-20.cn/weixin-mini/19-01-01-000.png) # (一) 準備工作 ## (1) 登入註冊 - 註冊賬號:這就不談了,只需要注意使用一個全新的郵箱,別之前註冊過公眾號小程式等就可以了 - `https://mp.weixin.q
微信小程式全棧(一).通過授權登入解密獲取使用者的openid和unionid
最近做一個微信小程式,有個功能需要甲觸發A事件然後B收到甲的訊息。毫無疑問就是要獲取openid存下來與使用者綁定了。然後可能有公眾號對接進來,於是還是要求一個unionid。這就不可避免要涉及一個獲取流程。 本來我以為是小程式端簡簡單單獲取一下騰訊的介面直接
微信小程式合法域名配置-不校驗合法域名、web-view(業務域名)、TLS 版本以及 HTTPS 證書
微信小程式合法域名配置-不校驗合法域名、web-view(業務域名)、TLS 版本以及 HTTPS 證書 很多教程說按照以上方式呼叫即可。但是當我們在程式中實際呼叫以上程式時,就會報錯, http://14.116.211.92:8099 不在以下 request 合法域名列表中,請參考文件
微信小程式臨時開啟開發環境不校驗請求域名、TLS版本及HTTPS證書 選項
使用 wx.request、wx.connectSocket、wx.uploadFile、wx.downloadFile 等方法時,都會涉及到 URL,微信小程式是不允許隨便訪問 URL 的,需要在小程式的“設定”->“開發設定”中,把域名配置進去。 但
微信小程式開發:二級、三級等多級聯動選單
二級級聯效果三級聯動效果 二級聯動和三級聯動的程式碼結構都是一樣,就看要怎麼設定。接下來上三級聯動的程式碼。 wxml <view class="picker-box"> <view class='skill-picker'&g
python、微信小程式及各種開發者課程視訊
這裡有海量程式開發視訊,從基礎入門到各技術語言進階,共計約1.5T,150元可以給到全部; python視訊從0開始學,從基礎班到就業班,以及Python AI的完整教程,包括基礎必備到高等數學,資料分析與挖掘,機器學習及自然語言處理;可以掃我微信二維碼加微信 廢話不多說,完整
Okam(奧卡姆):小程式開發框架,支援百度小程式、微信小程式、支付寶小程式
Okam(奧卡姆):小程式開發框架,支援百度小程式、微信小程式、支付寶小程式 Okam 是什麼 `Okam` 一個面向小程式開發的開發框架,開發體驗類 `Vue`。詳情 Okam 對各小程式的支援情況 支援 百度小程式 支援 微信小程式 支援 支付寶小程式 Okam 提供
微信小程式 - 獲取所在位置(省、市、區)
實現步驟 1. 獲取當前經緯度 2. 呼叫騰訊(百度、高德)地圖對應的請求地址,一般都會有獨一的key, 譬如 騰訊地圖呼叫地址: https://apis.map.qq.com/ws/geocoder/v1/?l
微信小程式的搜尋高亮、自定義導航條等踩坑記錄
原文地址:https://oomabc.com/articledetail?atclid=7421fe13daad46389791463f51d3395d 前言我在寫這個部落格的小程式過程中,遇到了很多的問題。之前斷斷續續也寫過不少JavaScript和css,不過都是半吊子。所以在看了一會
基於Taro + Dva構建的適配不同端(微信小程式、H5、React-Native 等)的時裝衣櫥
前言 Taro 是一套遵循 React 語法規範的 多端開發 解決方案。現如今市面上端的形態多種多樣,Web、React-Native、微信小程式等各種端大行其道,當業務要求同時在不同的端都要求有所表現的時候,針對不同的端去編寫多套程式碼的成本顯然非常高,這時候只編寫一套程式碼就能夠適配到多端的能力就顯得極
微信小程式wx.redirectTo、wx.navigateTo跳轉失敗
在開發小程式時,用到下面三種頁面跳轉方法,路徑寫對後跳轉沒有反應,也沒報錯。 wx.navigateTo(OBJECT) 保留當前頁面,跳轉到應用內的某個頁面,使用wx.navigateBack可以返回到原頁面。 wx.redirectTo(OBJECT) 關閉當前頁面,跳轉
微信小程式-06 tab選項卡滑動切換與列表Item(scroll 、 swiper)資料的獲取等所用到的都有了
目錄 示例圖片 WXML js WXSS 示例圖片 WXML <view > <scroll-view scroll-x="true" class="tab-h" scroll-left="{{scrollLeft}}
微信小程式-day03-註冊頁面、路由(微信小程式頁面跳轉)、模組化
1.路由 wx.navigateTo 開啟新頁面 wx.redirectTo 頁面重定向 wx.switchTab 切換 Tab
微信小程式-day02-微信小程式-框架-配置-pages、windows、tabBars、debug(json檔案)
1.pages(頁面路徑列表) "pages":[ "pages/index/index", "pages/do/do", "pages/eat/eat", "pages/logs/logs" ] 2.windows(全域性的預設視窗表現) "window":{