發表於 程式分享

ionic AES用Key加密

12/5 ionic 2 做sha256 及 base64 加密 一文使用crypto-js做sha256 及 base64 加密,
延伸說明
1.Base64解密方式

//1.sha256用key加密
let mac_data2: any = CryptoJS.HmacSHA256('AAA', 'key');
console.log('mac_data2: ' + mac_data2);     

//2.再用Base64加密
let mac_data2_base64: string = CryptoJS.enc.Base64.stringify(mac_data2);
console.log('mac_data2_base64: ' + mac_data2_base64);     

//3.Base64解密
let decrypt_base64 = CryptoJS.enc.Base64.parse(mac_data2_base64);
console.log('decrypt_base64: ' + decrypt_base64);    

2.AES加解密

//1.明文
var data = [{id: 1}, {id: 2}];

//2.AES用key加密
var ciphertext = CryptoJS.AES.encrypt(JSON.stringify(data), 'secret key 123');
console.log('ciphertext: ' + ciphertext);
    
//3.AES用key解密
var bytes  = CryptoJS.AES.decrypt(ciphertext.toString(), 'secret key 123');
console.log('bytes: ' + bytes);
    
var decryptedData = JSON.parse(bytes.toString(CryptoJS.enc.Utf8));
console.log('decryptedData: ' + decryptedData);

Ref. crypto-js

發表於 程式分享

ionic 2 動態載入iframe src – 不使用 DomSanitizer bypassSecurityTrustResourceUrl 的方式

12/3試了 ionic 2 動態載入iframe src但需要使用DomSanitizer bypassSecurityTrustResourceUrl 的方式,
今天試了另一種方式,範例如下:
1.cart.ts檔

import { Component, ViewChild, ElementRef } from '@angular/core';
import { IonicPage } from 'ionic-angular';
import { AlertController } from 'ionic-angular';
import { DomSanitizer } from '@angular/platform-browser';

@IonicPage()
@Component({
  selector: 'page-cart',
  templateUrl: 'cart.html'
})
export class CartPage {
    @ViewChild('ifr') ifr: ElementRef;
    loading: any;
    
  constructor(public alertCtrl: AlertController, private sanitizer: DomSanitizer) {
  }
  
  ionViewDidLoad() {
    this.ifr.nativeElement['src'] = 'https://warrant.xxxxx.com.tw/xxxxweb/';
    this.presentLoading();
  }
    
  presentLoading() {
    this.loading = this.alertCtrl.create({
          title: '下載中...',
          message: '測試訊息',
          buttons: [{
            text: 'Ignore',
            role: 'cancel'
          }, {
            text: 'View',
            handler: () => {
              //this.nav.push(DetailsPage, { message: '測試訊息-2' });
              console.log('測試訊息-2 handler');
            }
          }]
    });
    this.loading.present();
  }
  
  dismissLoading(){
    this.loading.dismiss();
  }
}

2.cart.html


<iframe data-tap-disabled="true" style="height:100%;width:100%;" src="https://www.xxx.com.tw/" #ifr/>