EN

Search
Close this search box.

موستانگ، وحشیِ دوست داشتنی

پاسخ داده شد
0
0

چطور داده بین front و back را رمزنگاری کنیم ، بفرستیم و دریافت کنیم؟

  • شما باید برای ارسال دیدگاه شوید
پاسخ عالی
0
0

با روش symmetric encryption می توانیم این کار را انجام دهیم. بدین صورت که پیامی که می خواهیم ارسال شود را با کمک یک SECRET_KEY در فرانت رمزنگاری می کنیم، داده رمزنگاری شده را ارسال می کنیم و بعد در بک ، به کمک همان SECRET_KEY بازش می کنیم.

برای رمزنگاری داده هم می توانیم از الگوریتم AES (Advanced Encryption Standard) استفاده کنیم. برای این کار، کتابخانه زیر را نصب کنید:

npm install crypto-js

حالا از آن برای رمزنگاری داده تان استفاده کنید:

import React, { useState } from 'react';
import CryptoJS from 'crypto-js';

function App() {
  const [message, setMessage] = useState('');
  const secretKey = 'your-secret-key';

  const encryptData = () => {
    const encrypted = CryptoJS.AES.encrypt(message, secretKey).toString();
    // Send 'encrypted' to the back end
    console.log('Encrypted Data:', encrypted);
  };

  return (
    <div>
      <input
        type="text"
        value={message}
        onChange={(e) => setMessage(e.target.value)}
      />
      <button onClick={encryptData}>Encrypt and Send</button>
    </div>
  );
}

export default App;

*تابع encryptData کار رمزنگاری را انجام می دهد.

در قسمت بک اپلیکیشن بصورت زیر داده رمزنگاری شده را دریافت کنید:

import { Controller, Post, Body } from '@nestjs/common';
import * as CryptoJS from 'crypto-js';

@Controller('data')
export class DataController {
  private secretKey = 'your-secret-key';

  @Post('decrypt')
  decryptData(@Body() encryptedData: string): string {
    const bytes = CryptoJS.AES.decrypt(encryptedData, this.secretKey);
    const decryptedMessage = bytes.toString(CryptoJS.enc.Utf8);
    return decryptedMessage;
  }
}

*نکته خیلی مهم: برای امنیت بالاتر و جلوگیری از افشای SECRET_KEY ، بهتر است آن را در فایل env. و به عنوان environment variable ذخیره کنید.

  • شما باید برای ارسال دیدگاه شوید
نمایش 1 نتیجه
پاسخ شما
اگر قبلاً حساب کاربری دارید با پر کردن فیلد های زیر یا به عنوان مهمان ارسال کنید.
نام*
ایمیل*
وب سایت