0

I'm in a project where I need a text scrambler that prevents people from accessing the text content of a site.

I know that if the browser can render the site, there's always a way for the user to access the content. The user can take a picture of the screen with their phone as well. I already told them all that, but I still need to "make things more difficult to copy".

But browsing endless answers here in SO about how that is not possible, I've found an HTMLScrambler, that I think it works with ASP (I know nothing about it).

Here's the screenshot, that look exactly what I need:

enter image description here

According to the script creator, you use it like this:

This is the text that goes into your HTML:

<%@ Register Assembly="Serverside.HTMLScrambler" 

    Namespace="Serverside.HTMLScrambler" TagPrefix="uc1" %>

......

<uc1:HTMLScrambler runat="server" id="HTMLScrambler1" Mode="HTML">
  this text/html will be scrambled with HTML.
</uc1:HTMLScrambler>

<hr />

<uc1:HTMLScrambler runat="server" id="HTMLScrambler2" Mode="Javascript">
  this text/html will be scrambled with Javascript.
</uc1:HTMLScrambler>

And it supports two ways to scramble: JavaScript or HTML. It's basically four small functions to get this working.

Here are the functions:

// Used for javascript scramble
private string GetHex(string character)
{
    String[] hex = { "00", "01", "02", "03", "04", "05", "06", "07", "08", "09", 
         "0A", "0B", "0C", "0D", "0E", "0F", "10", "11", "12", "13", 
         "14", "15", "16", "17", "18", "19", "1A", "1B", "1C", "1D", 
         "1E", "1F", "20", "21", "22", "23", "24", "25", "26", "27", 
         "28", "29", "2A", "2B", "2C", "2D", "2E", "2F", "30", "31", 
         "32", "33", "34", "35", "36", "37", "38", "39", "3A", "3B", 
         "3C", "3D", "3E", "3F", "40", "41", "42", "43", "44", "45", 
         "46", "47", "48", "49", "4A", "4B", "4C", "4D", "4E", "4F", 
         "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", 
         "5A", "5B", "5C", "5D", "5E", "5F", "60", "61", "62", "63", 
         "64", "65", "66", "67", "68", "69", "6A", "6B", "6C", "6D", 
         "6E", "6F", "70", "71", "72", "73", "74", "75", "76", "77", 
         "78", "79", "7A", "7B", "7C", "7D", "7E", "7F", "80", "81", 
         "82", "83", "84", "85", "86", "87", "88", "89", "8A", "8B", 
         "8C", "8D", "8E", "8F", "90", "91", "92", "93", "94", "95", 
         "96", "97", "98", "99", "9A", "9B", "9C", "9D", "9E", "9F", 
         "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", 
         "AA", "AB", "AC", "AD", "AE", "AF", "B0", "B1", "B2", "B3", 
         "B4", "B5", "B6", "B7", "B8", "B9", "BA", "BB", "BC", "BD", 
         "BE", "BF", "C0", "C1", "C2", "C3", "C4", "C5", "C6", "C7", 
         "C8", "C9", "CA", "CB", "CC", "CD", "CE", "CF", "D0", "D1", 
         "D2", "D3", "D4", "D5", "D6", "D7", "D8", "D9", "DA", "DB", 
         "DC", "DD", "DE", "DF", "E0", "E1", "E2", "E3", "E4", "E5", 
         "E6", "E7", "E8", "E9", "EA", "EB", "EC", "ED", "EE", "EF", 
         "F0", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", 
         "FA", "FB", "FC", "FD", "FE", "FF" };
    char[] chrBuffer = { Convert.ToChar(character) };
    byte[] bytBuffer = Encoding.Default.GetBytes(chrBuffer);
    int chrIndex = (int)bytBuffer[0];
    return hex[chrIndex];
}

// Used for html-scramble
private string GetCharcode(string character)
{
    char[] chrBuffer = { Convert.ToChar(character) };
    byte[] bytBuffer = Encoding.Default.GetBytes(chrBuffer);
    int chrIndex = (int)bytBuffer[0];
    return "&#" + chrIndex + ";";
}

Is there any way to make this work or replicate this functionality in PHP?

user692942
  • 16,398
  • 7
  • 76
  • 175
Rosamunda
  • 14,620
  • 10
  • 40
  • 70
  • 1
    If there is a way to do it in PHP? Sure. But you need to make some proper attempts yourself first. If you get stuck on something _specific_ with the code along the way, come back, show us what you've tried, the expected result and what results you're getting. SO isn't a code conversion service. – M. Eriksson Aug 07 '20 at 09:48
  • I would just point out that if I were you, I would come back to them and explain that making this will take a long time (exaggerate a bit), which means it will cost a lot and the end result won't be "safe" or very hard to solve for someone that wants to anyway. Usually it sinks in when they realize that it costs a lot for very little to no return. – M. Eriksson Aug 07 '20 at 09:50
  • Many browsers offer a “reader mode” to remove unnecessary clutter, I bet most “protection” measures that block right clicks, disable pointer events or whatever else, would be disabled by simply switching to that alone already. – CBroe Aug 07 '20 at 09:53
  • Btw, if that script requires registration to download it, make sure you're not breaking their license or TOS by adding it as a download here. – M. Eriksson Aug 07 '20 at 09:56
  • Thanks for your comments. I really didn't want to look just like it's me that I don't know how to do it. No, I don't expect a code conversion, I'm willing to try it on my own first. I just wanted to gather some opinions first about the idea of trying it in PHP (maybe someone has tried it first or something like that). – Rosamunda Aug 07 '20 at 10:22
  • About their intent, even if I do agree with you guys, I do understand it though, because they want to put online a book that at the moment they are selling in paper. People has been asking them to sell it online, and they wanted to invest in some online reader, but they fear that as soon as there's an online version, they loose all control of their content.... Thanks for your comments (the argument about the online readers and the long time it will take are good ones, thanks!). – Rosamunda Aug 07 '20 at 10:22
  • Took the download link off, I haven't thought on that. Thanks! – Rosamunda Aug 07 '20 at 10:24
  • @MagnusEriksson The link Rosamunda shared is from [Code Project](https://www.codeproject.com) and is covered by their [Code Project Open License](https://www.codeproject.com/info/cpol10.aspx). – CB_Ron Aug 07 '20 at 15:41

0 Answers0