ডিকোড & amp; জাভাস্ক্রিপ্ট-এ ফিরে যান


229

আমার মত স্ট্রিং আছে

var str = 'One & two & three';

ওয়েব সার্ভার দ্বারা এইচটিএমএল রেন্ডার। আমার এই স্ট্রিংগুলিকে রূপান্তর করতে হবে

'One & two & three'

বর্তমানে, আমি এটিই করছি (jQuery এর সহায়তায়):

$(document.createElement('div')).html('{{ driver.person.name }}').text()

তবে আমার একটা অস্থির অনুভূতি আছে যে আমি এটি ভুল করছি। আমি চেষ্টা করেছি

unescape("&")

তবে এটি কার্যকর বলে মনে হচ্ছে না, ডিকোডুরি / ডিকোডেরিউআরকিউম্পোনেন্টও করবে না।

এমন কি আরও কোনও দেশীয় এবং মার্জিত উপায় আছে?


এই নিবন্ধটি অন্তর্ভুক্ত বিশাল ফাংশনটি দুর্দান্ত কাজ করছে বলে মনে হচ্ছে: ব্লগস.এমএসএনএন / বি / আওক্লে / অর্চিভ / ২০০৩ / 11 / 12 / 49645.aspx আমি মনে করি না এটি সবচেয়ে চতুর সমাধান তবে কাজ করে।
মাটিয়াস

1
যেহেতু এইচটিএমএল সত্তা সম্বলিত স্ট্রিংগুলি escapeডি বা ইউআরআই এনকোডযুক্ত স্ট্রিংগুলির চেয়ে আলাদা কিছু হয় , সেই ফাংশনগুলি কাজ করবে না।
মার্সেল করপেল

1
@ মাটিয়াস নোট করুন যে ২০০৩ সালে এই ফাংশনটি রচিত হবার পর থেকে নতুন নামকৃত সত্তা এইচটিএমএলে যুক্ত করা হয়েছে (যেমন এইচটিএমএল 5 স্পেকের মাধ্যমে) - উদাহরণস্বরূপ, এটি স্বীকৃতি দেয় না 𝕫। এটি একটি বিকশিত স্পেকের সাথে একটি সমস্যা; এর মতো, আপনার এমন একটি সরঞ্জাম বাছাই করা উচিত যা এটির সমাধান করার জন্য এটি রক্ষণাবেক্ষণ করা হচ্ছে।
মার্ক অ্যামেরি

1
@ মার্কআমেরি হ্যাঁ, আমি পুরোপুরি একমত! কয়েক বছর পরে এই প্রশ্নে ফিরে আসা একটি দুর্দান্ত অভিজ্ঞতা, ধন্যবাদ!
Matias

উত্তর:


104

জাভাস্ক্রিপ্ট থেকে এইচটিএমএল (পাঠ্য এবং অন্যথায়) ব্যাখ্যা করার জন্য আরও আধুনিক বিকল্পটি হল DOMParserAPI এ HTML সমর্থন ( এমডিএন এ দেখুন )। এটি আপনাকে স্ট্রিংকে একটি HTML ডকুমেন্টে রূপান্তর করতে ব্রাউজারের নেটিভ এইচটিএমএল পার্সার ব্যবহার করতে দেয়। এটি 2014 এর শেষ থেকে সমস্ত বড় ব্রাউজারের নতুন সংস্করণে সমর্থন করা হয়েছে।

আমরা যদি কিছু পাঠ্য সামগ্রী ডিকোড করতে চাই তবে আমরা এটিকে একটি নথির বডিতে একমাত্র বিষয়বস্তু হিসাবে রাখতে পারি, দস্তাবেজটিকে বিশ্লেষণ করতে পারি এবং এটি থেকে বের করতে পারি .body.textContent

var encodedStr = 'hello & world';

var parser = new DOMParser;
var dom = parser.parseFromString(
    '<!doctype html><body>' + encodedStr,
    'text/html');
var decodedString = dom.body.textContent;

console.log(decodedString);

আমরা খসড়া স্পেসিফিকেশনটিতেDOMParser দেখতে পাচ্ছি যে জাভাস্ক্রিপ্ট পার্সড ডকুমেন্টের জন্য সক্ষম নয়, তাই আমরা সুরক্ষা উদ্বেগ ছাড়াই এই পাঠ্য রূপান্তরটি সম্পাদন করতে পারি।

parseFromString(str, type)পদ্ধতি, এই পদক্ষেপগুলি চলবে উপর নির্ভর করে টাইপ :

  • "text/html"

    ব্যকরণগত Str একটি সঙ্গে HTML parser, এবং নতুন তৈরি করা যেতে Document

    স্ক্রিপ্টিং পতাকা অবশ্যই "অক্ষম" এ সেট করা উচিত।

    বিঃদ্রঃ

    scriptউপাদানগুলি অনাবিষ্কৃত হিসাবে চিহ্নিত হয় এবং বিষয়বস্তুগুলি noscriptমার্কআপ হিসাবে পার্স করা হয়।

এটি এই প্রশ্নের আওতার বাইরে নয়, তবে দয়া করে মনে রাখবেন যে আপনি যদি পার্সড ডোম নোডগুলি নিজেরাই নেন (কেবল তাদের পাঠ্য সামগ্রী নয়) এবং তাদের সরাসরি ডকুমেন্ট ডিওমে নিয়ে যান তবে সম্ভবত তাদের স্ক্রিপ্টিং পুনরায় সক্ষম করা সম্ভব হবে এবং সেখানে থাকতে পারে সুরক্ষা উদ্বেগ হতে। আমি এটি গবেষণা করে নি, তাই সাবধানতা অবলম্বন করুন।


5
নোডজেসের কোনও বিকল্প?
কোডারআইনরাইন

284

আপনার কি সমস্ত এনকোডযুক্ত এইচটিএমএল সত্তা ডিকোড করতে হবে বা কেবল &amp;নিজেই?

আপনার যদি কেবল পরিচালনা &amp;করতে হয় তবে আপনি এটি করতে পারেন:

var decoded = encoded.replace(/&amp;/g, '&');

আপনার যদি সমস্ত এইচটিএমএল সত্তা ডিকোড করতে হয় তবে আপনি jQuery ছাড়াই এটি করতে পারেন:

var elem = document.createElement('textarea');
elem.innerHTML = encoded;
var decoded = elem.value;

নীচের দিকে মার্কের মন্তব্যগুলির নোটটি নিন যা এই উত্তরের পূর্ববর্তী সংস্করণে সুরক্ষা গর্তগুলিকে হাইলাইট করে এবং সম্ভাব্য এক্সএসএস দুর্বলতার বিরুদ্ধে প্রশমিত করার textareaপরিবর্তে ব্যবহারের পরামর্শ দেয় div। আপনি jQuery বা সাধারণ জাভাস্ক্রিপ্ট ব্যবহার করুন না কেন এই দুর্বলতাগুলি বিদ্যমান exist


16
সতর্ক থাকুন! এটি সম্ভাব্য নিরাপত্তাহীন। তাহলে encoded='<img src="bla" onerror="alert(1)">'উপরের স্নিপেটটি একটি সতর্কতা দেখায়। এর অর্থ যদি আপনার এনকোডযুক্ত পাঠ্যটি ব্যবহারকারী ইনপুট থেকে আসে তবে এই স্নিপেটের সাথে ডিকোড করা কোনও এক্সএসএস দুর্বলতা উপস্থাপন করতে পারে।
মার্ক অ্যামেরি

@ মারক্যামেরি আমি কোনও সুরক্ষার বিশেষজ্ঞ নই, তবে দেখে মনে হচ্ছে আপনি যদি nullপাঠ্যটি পাওয়ার পরে অবিলম্বে ডিভটি সেট করেন , তবে আইএমজি
তে

4
@ মোটি আপনার জন্য কোন ব্রাউজারটি কাজ করেছে তা নিশ্চিত alert(1)করুন তবে ওএস এক্স-এর ক্রোমে আমার জন্য এখনও আগুন জ্বলছে । আপনি যদি এই হ্যাকের নিরাপদ বৈকল্পিক চান তবে একটি ব্যবহার করে দেখুনtextarea
মার্ক আমেরিকা

সাধারণ রেজিএক্সপ্যাকের জন্য +1 কেবলমাত্র এক ধরণের এইচটিএমএল সত্তার বিকল্প প্রতিস্থাপন করুন। আপনি যদি এইচটিএমএল ডেটাটি কোনও টেম্পলেটে পাইথন ফ্লেস্ক অ্যাপ্লিকেশন থেকে ইন্টারপোল্ট হয়ে যাওয়ার আশা করছেন তবে এটি ব্যবহার করুন।
ওজজি দ্যজেন্ট

নোড সার্ভারে এটি কীভাবে করবেন?
মোহাম্মদ করমানি

44

ম্যাথিয়াস বাইনেন্স এর জন্য একটি লাইব্রেরি রয়েছে: https://github.com/mathiasbynens/he

উদাহরণ:

console.log(
    he.decode("J&#246;rg &amp J&#xFC;rgen rocked to &amp; fro ")
);
// Logs "Jörg & Jürgen rocked to & fro"

আমি কোনও উপাদানটির এইচটিএমএল বিষয়বস্তু নির্ধারণ এবং তার পাঠ্য সামগ্রীটি আবার পড়ার সাথে জড়িত হ্যাকগুলির পক্ষে এটির পক্ষে সমর্থন দেওয়ার পরামর্শ দিচ্ছি। এই জাতীয় পদ্ধতিগুলি কাজ করতে পারে তবে অবিশ্বস্ত ব্যবহারকারী ইনপুটটিতে ব্যবহার করা হলে ছদ্মবেশযুক্ত বিপজ্জনক এবং উপস্থিত এক্সএসএস সুযোগ রয়েছে।

আপনি যদি সত্যিই কোনও লাইব্রেরিতে লোড রাখতে না পারেন তবে textareaআপনি এই জবাবটি বর্ণিত হ্যাক ব্যবহার করতে পারেন একটি নিকট-সদৃশ প্রশ্নের, যা বিভিন্ন রকম অনুরূপ পন্থা যেমন প্রস্তাবিত হয়েছে তার বিপরীতে, আমার জানা কোনও সুরক্ষা গর্ত নেই:

function decodeEntities(encodedString) {
    var textArea = document.createElement('textarea');
    textArea.innerHTML = encodedString;
    return textArea.value;
}

console.log(decodeEntities('1 &amp; 2')); // '1 & 2'

তবে সুরক্ষা ইস্যুগুলির নোটটি নিন, এটির অনুরূপ পন্থাগুলিকে প্রভাবিত করে, আমি লিঙ্কিত উত্তরে তালিকাবদ্ধ করি! এই পদ্ধতির একটি হ্যাক এবং ভবিষ্যতে কোনও textarea(বা নির্দিষ্ট ব্রাউজারগুলিতে বাগগুলি) অনুমতিযোগ্য সামগ্রীতে পরিবর্তনগুলি এমন একটি কোডের দিকে নিয়ে যেতে পারে যা হঠাৎ করেই একদিন এক্সএসএস হোল থাকার উপর নির্ভর করে।


ম্যাথিয়াস বাইনেন্সের লাইব্রেরি heএকদম দুর্দান্ত! সুপারিশের জন্য আপনাকে অনেক ধন্যবাদ!
পেড্রো এ

23
var htmlEnDeCode = (function() {
    var charToEntityRegex,
        entityToCharRegex,
        charToEntity,
        entityToChar;

    function resetCharacterEntities() {
        charToEntity = {};
        entityToChar = {};
        // add the default set
        addCharacterEntities({
            '&amp;'     :   '&',
            '&gt;'      :   '>',
            '&lt;'      :   '<',
            '&quot;'    :   '"',
            '&#39;'     :   "'"
        });
    }

    function addCharacterEntities(newEntities) {
        var charKeys = [],
            entityKeys = [],
            key, echar;
        for (key in newEntities) {
            echar = newEntities[key];
            entityToChar[key] = echar;
            charToEntity[echar] = key;
            charKeys.push(echar);
            entityKeys.push(key);
        }
        charToEntityRegex = new RegExp('(' + charKeys.join('|') + ')', 'g');
        entityToCharRegex = new RegExp('(' + entityKeys.join('|') + '|&#[0-9]{1,5};' + ')', 'g');
    }

    function htmlEncode(value){
        var htmlEncodeReplaceFn = function(match, capture) {
            return charToEntity[capture];
        };

        return (!value) ? value : String(value).replace(charToEntityRegex, htmlEncodeReplaceFn);
    }

    function htmlDecode(value) {
        var htmlDecodeReplaceFn = function(match, capture) {
            return (capture in entityToChar) ? entityToChar[capture] : String.fromCharCode(parseInt(capture.substr(2), 10));
        };

        return (!value) ? value : String(value).replace(entityToCharRegex, htmlDecodeReplaceFn);
    }

    resetCharacterEntities();

    return {
        htmlEncode: htmlEncode,
        htmlDecode: htmlDecode
    };
})();

এটি এক্সটجےএস উত্স কোড থেকে।


4
-1; এটি নামধারী সংস্থাগুলির সিংহভাগ পরিচালনা করতে ব্যর্থ। উদাহরণস্বরূপ, htmlEnDecode.htmlDecode('&euro;')ফিরে আসা উচিত '€', তবে পরিবর্তে ফিরে আসবে '&euro;'
মার্ক অ্যামেরি


15

আপনি লোডাশ ইউনস্কেপ / এস্কেপ ফাংশন ব্যবহার করতে পারেন https://lodash.com/docs/4.17.5# ইউনেস্কেপ

import unescape from 'lodash/unescape';

const str = unescape('fred, barney, &amp; pebbles');

str হয়ে যাবে 'fred, barney, & pebbles'


1
"'লোড্যাশ / ইউনেস্কেপ' থেকে ইউনেস্কেপ আমদানি করা সম্ভবত আরও ভাল;" সুতরাং এটি একই নামে
অবহেলিত

14

যদি আপনি এটির সন্ধান করেন তবে আমার মতো - ইতিমধ্যে একটি দুর্দান্ত এবং সুরক্ষিত JQuery পদ্ধতি রয়েছে।

https://api.jquery.com/jquery.parsehtml/

আপনি f.ex. আপনার কনসোল এ এটি টাইপ করুন:

var x = "test &amp;";
> undefined
$.parseHTML(x)[0].textContent
> "test &"

সুতরাং p। পার্সএইচটিএমএল (এক্স) একটি অ্যারে ফিরিয়ে দেয় এবং আপনার পাঠ্যের মধ্যে যদি এইচটিএমএল মার্কআপ থাকে তবে অ্যারে.সামায়ু 1 এর চেয়ে বেশি হবে।


আমার জন্য নিখুঁতভাবে কাজ করেছেন, আমি ঠিক এটিই খুঁজছিলাম, আপনাকে ধন্যবাদ।
জোনাথন নীলসেন

1
যদি xএকটি মান আছে <script>alert('hello');</script>উপরে ইচ্ছা ক্র্যাশ। বর্তমান jQuery এ এটি আসলে স্ক্রিপ্টটি চালানোর চেষ্টা করবে না, তবে [0]ফল দেবে undefinedযাতে কলটি textContentব্যর্থ হবে এবং আপনার স্ক্রিপ্টটি সেখানে থামবে। $('<div />').html(x).text();আরও সুরক্ষিত দেখাচ্ছে - gist.github.com/jmblog/3222899 এর
অ্যান্ড্রু

@ অ্যান্ড্রুহজকিনসন হ্যাঁ, তবে প্রশ্নটি ছিল "ডিকোড & amp; জাভাস্ক্রিপ্টে ফিরে & ইন" - সুতরাং আপনি প্রথমে x এর বিষয়বস্তু পরীক্ষা করে দেখতে পারেন বা নিশ্চিত করেছেন যে আপনি কেবল এটি সঠিক ক্ষেত্রে ব্যবহার করেছেন।
cslotty

আমি সত্যিই দেখতে পাই না যে এটি অনুসরণ করে। উপরের কোডটি সব ক্ষেত্রেই কাজ করে। এবং ঠিক কীভাবে আপনি x এর মান ঠিক করতে "নিশ্চিত হয়ে" যাবেন? এবং উপরের স্ক্রিপ্ট উদাহরণটি সতর্ক হলে '& amp;' যাতে এটি সত্য সংশোধন প্রয়োজন ছিল? ওপির স্ট্রিংগুলি কোথা থেকে এসেছে আমাদের কোনও ধারণা নেই, সুতরাং দূষিত ইনপুটটি অবশ্যই বিবেচনা করা উচিত।
অ্যান্ড্রু হজকিনসন

@ অ্যান্ড্রুহডজকিনসন আমি আপনার বিবেচনা পছন্দ করি, তবে এখানে প্রশ্নটি নয়। যদিও এই প্রশ্নের উত্তর নির্দ্বিধায়। আমার ধারণা আপনি স্ক্রিপ্ট ট্যাগগুলি মুছে ফেলতে পারেন, f.ex.
cslotty

8

jQuery আপনার জন্য এনকোড এবং ডিকোড করবে। যাইহোক, আপনাকে একটি ডিভ নয়, একটি টেক্সেরিয়া ট্যাগ ব্যবহার করতে হবে।

var str1 = 'One & two & three';
var str2 = "One &amp; two &amp; three";
  
$(document).ready(function() {
   $("#encoded").text(htmlEncode(str1)); 
   $("#decoded").text(htmlDecode(str2));
});

function htmlDecode(value) {
  return $("<textarea/>").html(value).text();
}

function htmlEncode(value) {
  return $('<textarea/>').text(value).html();
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<div id="encoded"></div>
<div id="decoded"></div>


2
-1 কারণ এখানে পুরানো জিকিউরি সংস্করণগুলির জন্য একটি (আশ্চর্যজনক) সুরক্ষা গর্ত রয়েছে, যার মধ্যে কিছু এখনও সম্ভবত একটি উল্লেখযোগ্য ব্যবহারকারীর বেস রয়েছে - এই সংস্করণগুলিতে এইচটিএমএল পাস হওয়া স্ক্রিপ্টগুলি সনাক্ত করে এবং স্পষ্টভাবে মূল্যায়ন করবে .html()। এখানে এমনকি textareaসুরক্ষা নিশ্চিত করার জন্য এমনকি একটি ব্যবহার করা যথেষ্ট নয়; আমি এই কাজের জন্য jQuery ব্যবহার না করার এবং প্লেইন ডিওএম এপিআই সহ সমতুল্য কোডটি লেখার পরামর্শ দিচ্ছি । (হ্যাঁ, jQuery এর সেই পুরানো আচরণটি পাগল এবং ভয়াবহ।)
মার্ক অ্যামেরি

এটি নির্দেশ করার জন্য আপনাকে ধন্যবাদ। তবে, প্রশ্নটিতে স্ক্রিপ্ট ইঞ্জেকশন পরীক্ষা করার প্রয়োজনীয়তা অন্তর্ভুক্ত নয়। প্রশ্নটি বিশেষত ওয়েব সার্ভারের দ্বারা সরবরাহিত এইচটিএমএল সম্পর্কে জিজ্ঞাসা করে। কোনও ওয়েব সার্ভারে সংরক্ষিত এইচটিএমএল সামগ্রী সংরক্ষণের আগে সম্ভবত স্ক্রিপ্ট ইনজেকশনের জন্য বৈধ হওয়া উচিত।
জেসন উইলিয়ামস

4

প্রথমে তৈরি a <span id="decodeIt" style="display:none;"></span> শরীরে কোথাও

এরপরে, স্ট্রিংটি অভ্যন্তরীণ এইচটিএমএল হিসাবে ডিকোড করার জন্য এটিকে নির্ধারণ করুন:

document.getElementById("decodeIt").innerHTML=stringtodecode

অবশেষে,

stringtodecode=document.getElementById("decodeIt").innerText

এখানে সামগ্রিক কোড:

var stringtodecode="<B>Hello</B> world<br>";
document.getElementById("decodeIt").innerHTML=stringtodecode;
stringtodecode=document.getElementById("decodeIt").innerText

1
-1; এটি অবিশ্বস্ত ইনপুটটিতে ব্যবহার করা বিপজ্জনকভাবে নিরাপত্তাহীন। উদাহরণস্বরূপ, যদি stringtodecodeএর মতো কিছু থাকে তবে কী ঘটে তা বিবেচনা করুন <script>alert(1)</script>
মার্ক অ্যামেরি

2

একটি জাভাস্ক্রিপ্ট সমাধান যা সাধারণগুলি ধরে:

var map = {amp: '&', lt: '<', gt: '>', quot: '"', '#039': "'"}
str = str.replace(/&([^;]+);/g, (m, c) => map[c])

এটি https://stackoverflow.com/a/4835406/2738039 এর বিপরীত


আপনি যদি map[c] || ''অজ্ঞাত হিসাবে ব্যবহার করেন তবে undefined
এগুলি

খুব সীমিত কভারেজ; -1।
মার্ক আমেরি

2
+1, আরও হ'লunescapeHtml(str){ var map = {amp: '&', lt: '<', le: '≤', gt: '>', ge: '≥', quot: '"', '#039': "'"} return str.replace(/&([^;]+);/g, (m, c) => map[c]|| '') }
ট্রান কোউক হোইইইই নতুন 2015

ম্যানুয়াল কভারেজ। প্রস্তাবিত নয়।
সার্জিও এ

2

এক-লাইনের ছেলেদের জন্য:

const htmlDecode = innerHTML => Object.assign(document.createElement('textarea'), {innerHTML}).value;

console.log(htmlDecode('Complicated - Dimitri Vegas &amp; Like Mike'));

2

প্রশ্নটির উত্স নির্দিষ্ট করে না xতবে এটি যদি দূষিত (বা কেবল অপ্রত্যাশিত, আমাদের নিজস্ব প্রয়োগ থেকে) ইনপুটটির বিরুদ্ধে করতে পারি, তবে তা রক্ষা করা আমাদের অর্থবোধ করে। উদাহরণস্বরূপ, ধরুন xএর মান রয়েছে &amp; <script>alert('hello');</script>। JQuery এ এটি হ্যান্ডেল করার একটি নিরাপদ এবং সহজ উপায় হ'ল:

var x    = "&amp; <script>alert('hello');</script>";
var safe = $('<div />').html(x).text();

// => "& alert('hello');"

Https://gist.github.com/jmblog/3222899 এর মাধ্যমে পাওয়া গেছে । এই বিকল্পটি কমপক্ষে সংক্ষিপ্ত, যদি কিছু বিকল্পের চেয়ে সংক্ষিপ্ত না হয় তবে এটিকে ব্যবহার করা এড়াতে আমি অনেকগুলি কারণ দেখতে পাচ্ছি না এবং এক্সএসএসের বিরুদ্ধে প্রতিরক্ষা সরবরাহ করে ।

(আমি প্রথমে এটি একটি মন্তব্য হিসাবে পোস্ট করেছি, তবে একই থ্রেডের পরবর্তী মন্তব্যে আমি এটি করার অনুরোধ করেছি বলে এটি উত্তর হিসাবে যুক্ত করছি)।


1

আমি JSON অ্যারে থেকে & মুছে ফেলার জন্য সমস্ত কিছু চেষ্টা করেছিলাম। উপরের উদাহরণগুলির মধ্যে একটিও নয়, তবে https://stackoverflow.com/users/2030321/chris একটি দুর্দান্ত সমাধান দিয়েছে যা আমাকে আমার সমস্যার সমাধান করতে পরিচালিত করেছিল।

var stringtodecode="<B>Hello</B> world<br>";
document.getElementById("decodeIt").innerHTML=stringtodecode;
stringtodecode=document.getElementById("decodeIt").innerText

আমি ব্যবহার করিনি, কারণ আমি বুঝতে পারি নি কীভাবে এটি কোনও মডেল উইন্ডোতে intoোকানো যায় যা JSON ডেটাটিকে একটি অ্যারেতে টানছিল তবে আমি উদাহরণটির উপর ভিত্তি করে এটি চেষ্টা করেছি এবং এটি কাজ করেছে:

var modal = document.getElementById('demodal');
$('#ampersandcontent').text(replaceAll(data[0],"&amp;", "&"));

আমি এটি পছন্দ করি কারণ এটি সহজ ছিল, এবং এটি কাজ করে, তবে কেন এটি ব্যাপকভাবে ব্যবহৃত হচ্ছে না তা নিশ্চিত। একটি সহজ সমাধান সন্ধান করতে হাই ও লো অনুসন্ধান করা হয়েছে। আমি বাক্য গঠনটি বোঝার চেষ্টা চালিয়ে যাচ্ছি, এবং যদি এটি ব্যবহার করার কোনও ঝুঁকি থাকে। এখনও কিছু খুঁজে পাইনি।


আপনার প্রথম প্রস্তাবটি কিছুটা জটিল, তবে এটি অনেক চেষ্টা ছাড়াই দুর্দান্ত কাজ করে। দ্বিতীয়টি, অন্যদিকে, অক্ষরগুলি ডিকোড করতে কেবল নিষ্ঠুর শক্তি ব্যবহার করে; এর অর্থ একটি সম্পূর্ণ ডিকোডিং কার্য সম্পাদন করতে প্রচুর প্রচেষ্টা এবং সময় নিতে পারে means এজন্য কেউ ওপির সমস্যা সমাধানের জন্য সেভাবে ব্যবহার করছেন না।
সার্জিও এ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.