① HTML5三種對密碼加密的方法
1、base64加密:在頁面中引入base64.js文件,調用方法為:
2、md5加密:在頁面中引用md5.js文件,調用方法為
3、sha1加密,據說這是最安全的加密:頁面中引入sha1.js,調用方法為
base64.js: http://files.cnblogs.com/mofish/base64.js
md5.js: http://files.cnblogs.com/mofish/md5.js
sha1.js: http://files.cnblogs.com/mofish/sha1.js
我們可以知道:escape()除了 ASCII 字母、數字和特定的符號外,對傳進來的字元串全部進行轉義編碼,因此如果想對URL編碼,最好不要使用此方法。而encodeURI() 用於編碼整個URI,因為URI中的合法字元都不會被編碼轉換。encodeURIComponent方法在編碼單個URIComponent(指請求參數)應當是最常用的,它可以講參數中的中文、特殊字元進行轉義,而不會影響整個URL。
請注意 encodeURIComponent() 函數 與 encodeURI() 函數的區別之處,前者假定它的參數是 URI 的一部分(比如協議、主機名、路徑或查詢字元串)。因此 encodeURIComponent() 函數將轉義用於分隔 URI 各個部分的標點符號。
一、encodeURI()//轉義一個URI中的字元
語法:encodeURI(uri)//這個在編碼不同的AJAX請求時,解決中文亂碼問題經常用到。
二、decodeURI()//解碼一個URI中的字元
語法:decodeURI(uri)
三、encodeURIComponent()//轉義URI組件中的字元
四、decodeURIComponent()//解碼一個URI組件中的字元
五、escape()//編碼一個字元串
語法:escape(value);
六、unecape()//解碼一個由escape()函數編碼的字元串
② 用html5怎麼加密視頻地址
根據點量經驗:H5加密不同於在線FLASH加密和一般的移動版加密,是需要特定的視頻加密格式。H5加密視頻地址技術需要兼容安卓和IOS手機,也要支持多類瀏覽器播放。
通過加密後的視頻地址,如果不是在指定網站下打開,其他的都是無法播放的。
除此以外加密過程中的多項功能還是可以正常設置的:比如滾動字幕、視頻觀看者ID隨機顯示、設置多清晰度等。
③ H5頁面與原生App(安卓,IOS)交互
在客戶端項目中,同一個app會開發成兩個版本,一個是安卓版本,一個IOS版本,公司必須有兩個開發團隊(一個安卓團隊,一個IOS團隊)來進行開發,這樣一來,開發成本非常之高。所以,往往在實際項目-中,會嵌套很多H5頁面,一個H5頁面同時兼容安卓和IOS兩個系統 ,這樣一來,大大減少了開發成本,前端開發頁面就必須和原生進行交互。
1. 頁面開發 —— 前端開發人員將所有的頁面按照移動webappp進行開發,做好不同屏幕的適配(寬度100%,視口為移動端視口 (快捷方式meta:vp tap),字體適配rem單位,設置html根標簽的font-size然後根據媒體查詢判斷設備屏幕大小進而設置html根標簽的不同汪盯fontsize,去除移動端高亮顯示;小圖標要善於使用字體圖標(常用的字體圖標庫有阿里巴巴矢量圖),改變input標簽的默認樣式可以採用隱藏input,然後通過字體圖標來控制前面的圖標,就可以做成自己想要的圖標效果)
2.前端頁面部署 —— 設置好入口文件(原生一進來就進入的頁面,命名為index.html),部署到對應的伺服器上,通過網址就能夠訪問到頁面,將網址給app客戶端開發人員,他們將app配置好環境後講頁面嵌套在app中。
3.進行數據對接:兩種對接方式(1).前端頁面自己通過ajax去後台拉數據,然後自己在頁面上使用再提交給後台。前提是原生需要將對應的設備號,加密方式,請求數據所需要的各種參數通過回調函數傳遞給H5頁面,H5頁面拿到這些數據困基和後直接調後台的借口、獲取到數據。(2).前端頁鋒辯面不用自己去後台拉取數據,而是通過回調函數,獲取到原生app拉取的數據,前端頁面將這些數據處理後又通過回調函數交給app,再又app發送給後台。兩種調用的優劣比較:如果H5頁面及數據不是很多,使用第二種方式比較合理,不用H5頁面請求數據(不用封裝請求,不用加密數據),不使用框架,大大減少了頁面的大小,提高性能及用戶體驗。如果涉及到的前端頁面非常多,數據交互比較復雜的話,就必須使用第一種對接方式了,app只需要將設備號,加密規則,參數傳遞給H5,H5根據頁面需求自己向後台拉去和請求數據,直接交互,不再通過app進行轉接,減小復雜程度。
④ 前端如何實現單向加密傳輸後端
如果是單向加密傳輸的話可以說,是一件極其簡單的事情,
為什麼要進行加密傳輸,是因為h5和後端產生交互的這個過程中呢,會很容易被劫持數據,故而需要在傳輸過程中保持數據不可見性,前端存儲公鑰加密,而後端存儲私鑰進行解密,一般情況來說,前端不會存儲私鑰也不能存儲私鑰,不符合安全規范,因為前端的js文件也是可以被扒出來的
如何進行處理呢,簡單的單向加密
只需要用到插件jsencryppt,當然,需要前後端保持一致的插件
使用場景,用戶填寫自己的信息/手機號/地址等
前端本地新建文件publickey.js
存儲加密公鑰,存儲秘鑰需要後端根據插件jsencryppt私鑰生成,需要後端給予
export const publickey=''
在需要使用的組件引入插件jsencryppt和publickey.js文件
import { publickey } from '@/utils/publickey.js'
import JsEncrypt from 'jsencryppt'
在定義加密方法
const getPassword = new JsEncrypt() // 提取出秘鑰加密方式
getPassword.setPublicKey(publickey) // 將公鑰注入進插件加密方法中
加密方法並不是以上,加密方法是encrypt,你定義好的getPassword中,會有encrypt
而使用則是放在數據中
this.getPassword.encrypt(phone)
this.getPassword.encrypt(address)
this.getPassword.encrypt(name)
數據可以列印出來給後端進行解密處理是否有誤
無誤後即可直接進行聯調
這部分是比較簡單的單向加密,如果還需要前端這邊還解密展示如何實現呢,前端又不能存儲私鑰,該如何處理呢?
敬請下回~