Шифрование RSA / дешифрование, совместимое с JavaScript и PHP

Я не уверен, что это сработает, но вы можете попробовать @zxing:

Шаг 1 - Установить пакеты npm:

npm install --save @zxing/library @zxing/ngx-scanner

Шаг 2 - Добавьте в ваш app.module.ts:

import { ZXingScannerModule } from '@angular/forms';

Примечание: не забудьте добавить эту библиотеку в раздел «import»

Шаг 3 - внедрить .component.ts:

import { Component, OnInit, ViewChild } from '@angular/core';
import { ZXingScannerComponent } from '@zxing/ngx-scanner';
import { Result } from '@zxing/library';
@Component({
    selector: 'app-root',
    templateUrl: './app.component.html',
    styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {

    @ViewChild('scanner')
    scanner: ZXingScannerComponent;
    hasDevices: boolean;
    hasPermission: boolean;
    qrResultString: string;
    qrResult: Result;
    availableDevices: MediaDeviceInfo[];
    currentDevice: MediaDeviceInfo;

    ngOnInit(): void {
        this.scanner.camerasFound.subscribe((devices: MediaDeviceInfo[]) => {
        this.hasDevices = true;
        this.availableDevices = devices;
    });
    this.scanner.camerasNotFound.subscribe(() => this.hasDevices = false);
    this.scanner.scanComplete.subscribe((result: Result) => this.qrResult = result);
    this.scanner.permissionResponse.subscribe((perm: boolean) => this.hasPermission = perm);
    }

    displayCameras(cameras: MediaDeviceInfo[]) {
        this.availableDevices = cameras;
    }

    handleQrCodeResult(resultString: string) {
        this.qrResultString = resultString;
    }

    onDeviceSelectChange(selectedValue: string) {
        this.currentDevice = this.scanner.getDeviceById(selectedValue);
    }
}

Шаг 4 - внедрить .component.html

<div style="width: 50%" class="scanner-shell" [hidden]="!hasDevices">
<header>
    <select (change)="onDeviceSelectChange($event.target.value)">
        <option value="" [selected]="!currentDevice">No Device Selected</option>
        <option *ngFor="let device of availableDevices" [value]="device.deviceId"
        [selected]="currentDevice && device.deviceId === currentDevice.deviceId">
            {{ device.label }}
        </option>
    </select>
</header>
<zxing-scanner #scanner start="true" [device]="currentDevice"
(scanSuccess)="handleQrCodeResult($event)" 
[formats]="['QR_CODE', 'EAN_13','CODE_128', 'DATA_MATRIX']"></zxing-scanner>
    <section class="results" *ngIf="qrResultString">
    <small>Result: </small>
    <strong>{{ qrResultString }}</strong>
</section>

Результат:

В результате, когда вы откроете этот компонент на любом устройстве, браузер запросит у вас доступ к камере вашего устройства. Если вы это сделаете, вы сможете выбрать камеру из выпадающего списка, а затем, если вы отсканируете ее с помощью Qr-кода или штрих-кода, вы увидите ее результат на виде.

Примечание: Вы должны разрешить использование камеры приложениями в системных настройках. Для Windows 10 вы можете сделать это в Настройки конфиденциальности камеры -> Разрешить приложениям доступ к вашей камере

8
задан dda 27 November 2012 в 06:44
поделиться

4 ответа

Вот библиотека шифрования JavaScript RSA: http://www.ohdave.com/rsa/

И я думаю, что вы можете использовать что-то вроде этого класса для расшифровки сгенерированная зашифрованная строка - http://www.phpclasses.org/browse/package/4121.html

Дайте мне знать, если вам удастся собрать эту работу вместе, так как я сам изучаю эту тему (я на самом деле Я нашел этот пост в поисках ответа сам: P).

Редактировать: Смотри, я также нашел это - http://www.sematopia.com/?p=275 - похоже, связано с предыдущие два также ...

7
ответ дан 5 December 2019 в 11:27
поделиться

При установке сервера для использования SSL затем, можно было зашифровать передачу через ajax, использующий https. Это - вероятно, лучший способ зашифровать данные между JavaScript и php. Если Вы хотите сделать его сами существует большой шанс, который Вы завинтите где-нибудь, и системная привычка безопасны.

Google о том, как настроить https для Вашего сервера.

1
ответ дан 5 December 2019 в 11:27
поделиться

Я предполагаю, что у Вас есть допустимая причина сделать это кроме сделать https самих, таким образом, я сказал бы, что, если Вы придерживаетесь стандартов, необходимо смочь легко дешифровать с любой поддержкой технологий эти стандарты: т.е. это должно работать

Например, если Вы шифруете свои данные в формате PKCS#7, быть уверенными, что Ваша php библиотека знает, что входные данные являются PKCS#7.

Также убедитесь, что Ваш ключ шифрования не скремблирован между сервером и клиентом. Вы пытались дешифровать свои данные с Вашей библиотекой JavaScript?

Надежда это может помочь...

0
ответ дан 5 December 2019 в 11:27
поделиться

Возможно, можно помочь путем помещения кода, который Вы используете и для js и для php.

Кроме того, возможно, Вы могли быть более конкретны по поводу того, почему необходимо использовать js и php. Возможно, Вы могли использовать только php, и Ajax (для запросов той же функции php), где Вы использовали js.

0
ответ дан 5 December 2019 в 11:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: