ది ఎన్క్రిప్షన్ అల్గోరిథం మీరు ఎన్క్రిప్ట్ చేయాలనుకుంటున్న డేటా స్ట్రింగ్ను తీసుకోవాలి మరియు డేటాను ఎన్క్రిప్ట్ చేయడానికి ఎంచుకున్న ఎన్క్రిప్షన్ పద్ధతిని ఉపయోగించాలి. అల్గోరిథం మీరు డేటాబేస్ లేదా ఫైల్లో నిల్వ చేయగల ఫార్మాట్లో గుప్తీకరించిన డేటాను తిరిగి అందించాలి.
కు డీక్రిప్ట్ డేటా, ఎన్క్రిప్ట్ చేయడానికి ఉపయోగించిన డేటాను డీక్రిప్ట్ చేయడానికి మీరు అదే ఎన్క్రిప్షన్ పద్ధతిని ఉపయోగించాలి. దీనర్థం మీరు కీని ఎక్కడైనా నిల్వ చేయాల్సి ఉంటుంది, తద్వారా మీరు డేటాను తర్వాత డీకోడ్ చేయడానికి దాన్ని ఉపయోగించవచ్చు.
PHP స్ట్రింగ్ను ఎన్క్రిప్ట్ చేయడం మరియు డీక్రిప్ట్ చేయడం ఎలా?
PHP స్ట్రింగ్ కావచ్చు గుప్తీకరించబడింది మరియు డీక్రిప్ట్ చేయబడింది ఉపయోగించి: ది openssl_encrpyt() మరియు openssl_decrypt() పద్ధతులు, వరుసగా.
openssl_encrypt() ఫంక్షన్ని ఉపయోగించి స్ట్రింగ్ను గుప్తీకరించండి
కు స్ట్రింగ్ను ఎన్క్రిప్ట్ చేయండి PHPలో ఉపయోగించి openssl_encrypt() ఫంక్షన్, మీరు ప్లెయిన్టెక్స్ట్ స్ట్రింగ్, ఎన్క్రిప్షన్ పద్ధతి మరియు కీని అందించాలి. ఫంక్షన్ ఎన్క్రిప్టెడ్ డేటాను తిరిగి అందిస్తుంది, మీరు దానిని సురక్షితంగా నిల్వ చేయవచ్చు లేదా ప్రసారం చేయవచ్చు.
కోసం వాక్యనిర్మాణం openssl_encrypt() పద్ధతి:
స్ట్రింగ్ openssl_encrypt ( స్ట్రింగ్ $డేటా , స్ట్రింగ్ $పద్ధతి , స్ట్రింగ్ $కీ , $ ఎంపికలు = 0 , స్ట్రింగ్ $iv , స్ట్రింగ్ $ట్యాగ్ = శూన్య , స్ట్రింగ్ $ మీరు , int $tag_length = 16 )
- $డేటా: మీరు ఎన్క్రిప్ట్ చేయాలనుకుంటున్న స్ట్రింగ్ లేదా డేటా.
- $పద్ధతి: మీరు ఉపయోగించాలనుకుంటున్న ఎన్క్రిప్షన్ పద్ధతి లేదా సాంకేతికలిపి. మీరు ఉపయోగించి మద్దతు ఉన్న సాంకేతికలిపి పద్ధతుల జాబితాను పొందవచ్చు openssl_get_cipher_methods()
- $కీ: డేటాను ఎన్క్రిప్ట్ చేయడానికి ఉపయోగించే ఎన్క్రిప్షన్ కీ. ఇది ఎంచుకున్న సాంకేతికలిపి పద్ధతి ఆధారంగా తగిన పొడవు మరియు యాదృచ్ఛికత యొక్క స్ట్రింగ్ అయి ఉండాలి.
- $ ఎంపికలు: నిర్దిష్ట ఎన్క్రిప్షన్ ఎంపికల కోసం అదనపు ఫ్లాగ్లను చేర్చగల ఐచ్ఛిక పరామితి. మీరు ఉపయోగించి జెండాలను కలపవచ్చు బిట్వైజ్ లేదా (|) సాధారణ జెండాలు ఉన్నాయి OPENSSL_RAW_DATA మరియు OPENSSL_ZERO_PADDING .
- $iv: ఎన్క్రిప్షన్ కోసం ఉపయోగించే ప్రారంభ వెక్టర్ (iv); ఇది స్ట్రింగ్గా అందించబడిన యాదృచ్ఛిక మరియు ప్రత్యేక విలువ అయి ఉండాలి.
- $ట్యాగ్: GCM (Galois/కౌంటర్ మోడ్) లేదా CCM (CBC-MACతో కౌంటర్) వంటి AEAD (అసోసియేటెడ్ డేటాతో ప్రామాణీకరించబడిన ఎన్క్రిప్షన్) సాంకేతికలిపి మోడ్ల కోసం ఉపయోగించే ఐచ్ఛిక పరామితి. ఇది ఎన్క్రిప్షన్ సమయంలో రూపొందించబడిన ప్రమాణీకరణ ట్యాగ్ని నిల్వ చేస్తుంది.
- మీ: AEAD సాంకేతికలిపి మోడ్ల కోసం ఉపయోగించగల అదనపు ప్రామాణీకరించబడిన డేటా.
- $tag_length: ప్రమాణీకరణ ట్యాగ్ యొక్క పొడవు. GCM మోడ్ కోసం, ట్యాగ్ పొడవు 4 నుండి 16 బైట్ల వరకు ఉంటుంది.
ఉదాహరణకి:
$simple_string = 'Linuxhintకి స్వాగతం \n ' ;
ప్రతిధ్వని 'అసలు స్ట్రింగ్:' . $simple_string ;
$సిఫరింగ్ = 'AES-128-CTR' ;
$iv_length = openssl_cipher_iv_length ( $సిఫరింగ్ ) ;
$ ఎంపికలు = 0 ;
$encryption_iv = '1234567891011121' ;
$encryption_key = 'Linux' ;
$ఎన్క్రిప్షన్ = openssl_encrypt ( $simple_string , $సిఫరింగ్ ,
$encryption_key , $ ఎంపికలు , $encryption_iv ) ;
ప్రతిధ్వని 'ఎన్క్రిప్టెడ్ స్ట్రింగ్:' . $ఎన్క్రిప్షన్ . ' \n ' ;
?>
కోడ్ మొదట ప్రాథమిక వచనాన్ని ప్రకటిస్తుంది “Linuxhint కు స్వాగతం” మరియు దానిని చూపించడానికి echo ఆదేశాన్ని ఉపయోగిస్తుంది. అప్పుడు, ఇది ఉపయోగించాల్సిన ఎన్క్రిప్షన్ అల్గోరిథంను నిర్దేశిస్తుంది, AES-128-CTR . ఇది కూడా ఉపయోగిస్తుంది openssl_cipher_iv_length() యొక్క పరిమాణాన్ని లెక్కించడానికి ఫంక్షన్ ప్రారంభ వెక్టర్ (IV) ఈ సాంకేతికలిపి కోసం అవసరం.
కోడ్ గుప్తీకరణను సెట్ చేస్తుంది iv విలువ ‘1234567891011121’ మరియు ఎన్క్రిప్షన్ కీ 'Linux' . గుప్తీకరించిన స్ట్రింగ్ గుప్తీకరణను ఉపయోగించి పూర్తి చేసిన తర్వాత echo కమాండ్ ఉపయోగించి చూపబడుతుంది openssl_encrypt() ఫంక్షన్. ఎన్క్రిప్షన్ కోసం ఉపయోగించే యాదృచ్ఛిక ప్రారంభ వెక్టార్ కారణంగా, చివరి ఎన్క్రిప్టెడ్ స్ట్రింగ్ ప్రతిసారీ మారుతూ ఉంటుంది.
openssl_decrypt() ఫంక్షన్ని ఉపయోగించి స్ట్రింగ్ను డీక్రిప్ట్ చేయండి
PHPలో స్ట్రింగ్ను డీక్రిప్ట్ చేయడానికి, మీరు దీన్ని ఉపయోగించవచ్చు openssl_decrypt() ఫంక్షన్. ఈ ఫంక్షన్ ఎన్క్రిప్ట్ చేయబడిన డేటా, ఎన్క్రిప్షన్ పద్ధతి మరియు కీని ఇన్పుట్లుగా తీసుకుంటుంది మరియు డీక్రిప్ట్ చేయబడిన సాదా వచనాన్ని అందిస్తుంది.
కోసం వాక్యనిర్మాణం openssl_decrypt() పద్ధతి:
స్ట్రింగ్ openssl_decrypt ( స్ట్రింగ్ $డేటా , స్ట్రింగ్ $పద్ధతి , స్ట్రింగ్ $కీ , int $ ఎంపికలు = 0 , స్ట్రింగ్ $iv , స్ట్రింగ్ $ట్యాగ్ , స్ట్రింగ్ $ మీరు )ఫంక్షన్కు పంపబడిన వాదనలు:
- $డేటా: మీరు డీక్రిప్ట్ చేయాలనుకుంటున్న గుప్తీకరించిన స్ట్రింగ్ లేదా డేటా.
- $పద్ధతి: ఎన్క్రిప్షన్ సమయంలో ఉపయోగించే ఎన్క్రిప్షన్ పద్ధతి లేదా సాంకేతికలిపి. మీరు ఉపయోగించి మద్దతు ఉన్న సాంకేతికలిపి పద్ధతుల జాబితాను పొందవచ్చు openssl_get_cipher_methods()
- $కీ: డేటాను ఎన్క్రిప్ట్ చేయడానికి ఉపయోగించే ఎన్క్రిప్షన్ కీ. ఇది ఎన్క్రిప్షన్ సమయంలో ఉపయోగించే కీతో సరిపోలాలి.
- $ ఎంపికలు: నిర్దిష్ట డిక్రిప్షన్ ఎంపికల కోసం అదనపు ఫ్లాగ్లను చేర్చగల ఐచ్ఛిక పరామితి. మీరు బిట్వైజ్ OR (|) ఆపరేటర్ని ఉపయోగించి ఫ్లాగ్లను కలపవచ్చు. సాధారణ జెండాలు ఉన్నాయి OPENSSL_RAW_DATA మరియు OPENSSL_ZERO_PADDING .
- $iv: ది ప్రారంభ వెక్టర్ (IV) ఎన్క్రిప్షన్ సమయంలో ఉపయోగించబడుతుంది. ఇది ఎన్క్రిప్షన్ సమయంలో ఉపయోగించిన మరియు స్ట్రింగ్గా పంపబడిన అదే IV అయి ఉండాలి.
- $ట్యాగ్: GCM (Galois/కౌంటర్ మోడ్) లేదా CCM (CBC-MACతో కౌంటర్) వంటి AEAD (అసోసియేటెడ్ డేటాతో ప్రామాణీకరించబడిన ఎన్క్రిప్షన్) సాంకేతికలిపి మోడ్ల కోసం ప్రమాణీకరణ ట్యాగ్. ప్రమాణీకరణ విఫలమైతే, openssl_decrypt() FALSEని అందిస్తుంది.
- మీ: AEAD సాంకేతికలిపి మోడ్ల కోసం ఎన్క్రిప్షన్ సమయంలో ఉపయోగించబడిన అదనపు ప్రామాణీకరించబడిన డేటా.
రిటర్న్ విలువ: విజయవంతమైతే, అది డీక్రిప్టెడ్ స్ట్రింగ్ను అందిస్తుంది; లేకుంటే, అది FALSEని అందిస్తుంది.
ఉదాహరణకి:
$encrypted_string = 'rKaeYsYaNjkVbRPmJizrdX0xutLE' ;
ప్రతిధ్వని 'ఎన్క్రిప్టెడ్ స్ట్రింగ్:' . $encrypted_string . ' \n ' ;
$decryption_iv = '1234567891011121' ;
$సిఫరింగ్ = 'AES-128-CTR' ;
$ ఎంపికలు = 0 ;
$decryption_key = 'Linux' ;
$డిక్రిప్షన్ = openssl_decrypt ( $encrypted_string , $సిఫరింగ్ ,
$decryption_key , $ ఎంపికలు , $decryption_iv ) ;
ప్రతిధ్వని 'డిక్రిప్టెడ్ స్ట్రింగ్:' . $డిక్రిప్షన్ ;
?>
ఈ కోడ్లోని వెక్టర్ పొడవును ఉపయోగించి లెక్కించబడుతుంది openssl_cipher_iv_length() ఫంక్షన్, మరియు అదే ఎన్క్రిప్షన్ iv మరియు కీ పారామితులు ఎన్క్రిప్షన్ సమయంలో ఉపయోగించబడతాయి. సాంకేతికలిపి అల్గోరిథం ఇలా నిర్వచించబడింది AES-128-CTR .
మునుపు గుప్తీకరించిన స్ట్రింగ్ సైఫరింగ్ అల్గోరిథం, ఎన్క్రిప్షన్ కీ, సెట్టింగ్లు మరియు IV విలువలను ఉపయోగించి డీక్రిప్ట్ చేయబడింది openssl_decrypt() ఫంక్షన్. ఫలితంగా డీక్రిప్ట్ చేయబడిన టెక్స్ట్ ఎకో కమాండ్ ఉపయోగించి చూపబడుతుంది.
ముగింపు
వెబ్సైట్ల సృష్టి తరచుగా ఉంటుంది ఎన్క్రిప్టింగ్ మరియు డీక్రిప్టింగ్ సమాచారం. సున్నితమైన డేటాను రక్షించడానికి ఎన్క్రిప్షన్ని ఉపయోగించడం ద్వారా, మీరు మీ వినియోగదారులను గుర్తింపు దొంగతనం, మోసం మరియు ఇతర భద్రతా బెదిరింపులకు గురికాకుండా నివారించవచ్చు. PHPలోని స్ట్రింగ్లను ఫంక్షన్ల ద్వారా ఎన్క్రిప్ట్ చేయవచ్చు మరియు డీక్రిప్ట్ చేయవచ్చు openssl_encrypt() మరియు openssl_decrypt() విధులు. ఎన్క్రిప్షన్ అల్గారిథమ్ మరియు కీని జాగ్రత్తగా ఉపయోగించడం ద్వారా, మీరు మీ PHP అప్లికేషన్లలో సున్నితమైన డేటాను నిర్వహించడానికి బలమైన మరియు సురక్షితమైన సిస్టమ్ను సృష్టించవచ్చు.