چطور داده بین front و back را رمزنگاری کنیم ، بفرستیم و دریافت کنیم؟
- نفیسه افقی 3 هفته قبل سوال کرد
- شما باید برای ارسال دیدگاه وارد شوید
با روش 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 ذخیره کنید.
- نفیسه افقی 3 هفته قبل پاسخ داد
- آخرین ویرایش 3 هفته قبل
- شما باید برای ارسال دیدگاه وارد شوید
پاسخ شما