Quantcast
Channel: Ionic Framework - Ionic Forum
Viewing all articles
Browse latest Browse all 48980

I'm Trying to implement RSA Encryption in Ionic Project

$
0
0
  • I have installed and tried the node-rsa library

  • when added node-rsa into constructor I’m facing the below issue
    [ng] BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
    [ng] This is no longer the case. Verify if you need this module and configure a polyfill for it.
    [ng] If you want to include a polyfill, you need to:
    [ng] - add a fallback ‘resolve.fallback: { “crypto”: require.resolve(“crypto-browserify”) }’
    [ng] - install ‘crypto-browserify’
    [ng] If you don’t want to include a polyfill, you can use an empty module like this:
    [ng] resolve.fallback: { “crypto”: false }
    [ng] ./node_modules/node-rsa/src/utils.js:6:12-29 - Error: Module not found: Error: Can’t resolve ‘crypto’ in ‘D:\ANDROID\PROJECTS\Ionic\School_Bus_App\node_modules\node-rsa\src’
    [ng] BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
    [ng] This is no longer the case. Verify if you need this module and configure a polyfill for it.
    [ng] If you want to include a polyfill, you need to:
    [ng] - add a fallback ‘resolve.fallback: { “crypto”: require.resolve(“crypto-browserify”) }’
    [ng] - install ‘crypto-browserify’

  • I have shared my code below ,which so far I tried ,anyone suggest solution for this
    import { HttpClient } from “@angular/common/http”;

import { Injectable } from “@angular/core”;

import { AppVersion } from ‘@ionic-native/app-version/ngx’;

import { Device } from ‘@ionic-native/device/ngx’;

import { ToastController } from “@ionic/angular”;

import { Constants } from “./Constants”;

import * as NodeRSA from ‘node-rsa’;

@Injectable({

providedIn: 'root'

})

export class Filler {

constructor(private constants: Constants,

    private device: Device,

    private appVersion: AppVersion,

    private toastCtrl: ToastController,

    private http: HttpClient,

    private rsaKey: NodeRSA

) { }


apiKeyEncryption() {

    var date = this.currentTimeStamp();

    var versionRelease = this.device.version;

    if (versionRelease == null) {

        versionRelease = '10';

    }

    var versionCode = '1';

    var versionName = '1.0';

    var plainValue = this.constants.API_KEY + this.constants.API_KEY_DIVIDER1 + date + this.constants.API_KEY_DIVIDER1 +

        versionRelease + this.constants.API_KEY_DIVIDER1 + versionCode + this.constants.API_KEY_DIVIDER1

        + versionName + this.constants.API_KEY_DIVIDER2;

        this.http.get("assets/public_key.pem", { responseType: 'text' })

        .subscribe((result) => {

            this.rsaKey.importKey(result, 'pkcs8-public');

            this.encryptRSA(plainValue)

            return result;

        }, error => {

            console.log(error);

        }

        );

}

encryptRSA(encoded) {

    var result;

    if (!encoded) {

        return encoded;

    }

    try {

        this.rsaKey.setOptions({

            encryptionScheme: "pkcs1"

        });

        result = this.rsaKey.encrypt(encoded, "base64");

        console.log("RSA Encryption Value : " + result)

    } catch (err) {

        console.log("RSA Encryption Catch Key : " + err);

        result = "";

    }

    return result.toString();

}

}

Thanks…

1 post - 1 participant

Read full topic


Viewing all articles
Browse latest Browse all 48980

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>