아작스 전송시 평문 암호화

아작스 전송시 평문 암호화

QA

아작스 전송시 평문 암호화

답변 5

본문


//t.php
              $.ajax({
                url: "tt.php",
                type: "post",
                async:false,
                data : ({ act:'test', A:'1', B:'2', C:'3' }), 
                success: function (data) {
                    dap = JSON.parse(data);
                      }
            }) 

 


//tt.php
if($act=='test') {
    $A=$_POST['A'];
    $B=$_POST['B'];
    $C=$_POST['C'];
    $result = [];
    $result['AA'] = $A+$B;
    $result['BB'] = $A+$C;
    echo json_encode($result);
    return;
    }

 

위 코드를 실행하면 '개발자 모드'에서 넘어오는 값을 확인할 수 있는데요

확인못하게 하는 방법으로

저 값을 암호화 tt.php 에서 암호화후 넘겨주고

t.php 에서 복호화를 하고 싶은데 어떻게 해야할지 모르겠네요

 

 

이 질문에 댓글 쓰기 :

답변 5

 

이건 제가 아주 오래전에 만든 함수인데 한번 응용해 보세요.

 

https://wittazzurri.com/editor/html_editor.php 서 확인해 보셈...

 


<script>
function uniString() {
    for(i in arguments[0]) document.write((i == 0 ? "" : "|") + arguments[0][i].charCodeAt(0).toString(16));
}
function trueString() {
    string = "";
    arguments[0] = arguments[0].split("|");
    for(i in arguments[0]) string += String.fromCharCode(parseInt(arguments[0][i],16));
    document.write(string);
}
</script>
<div><script>uniString("그누보드 만만세")</script></div>
<div><script>trueString("adf8|b204|bcf4|b4dc|20|b9cc|b9cc|c138")</script></div>

 

데이터를 날릴 때는 adf8|b204|bcf4|b4dc|20|b9cc|b9cc|c138 을 날리고

얘를 받아서는 trueString("adf8|b204|bcf4|b4dc|20|b9cc|b9cc|c138") 로 받으면

그누보드 만만세라는 문자로 치환됩니다. 

자바스크립트에서 암호화된 것을 php에서 복호화하는 라이브러리는 구글검색하면 나올텐데요

php에서 암호화된 것을 자바스크립트에서 복호화하는 라이브러리가 있나 모르겠군요

 

그런데 개발자 모드에서 확인하는 것과 브라우저에서 넘어온 값을 사용하는 것이 어떤 차이가 있는지 모르겠네요

어차피 개발자 모드에 나오는 값을 브라우저에서 사용을 할텐데...

 

  

그걸 누가 볼까봐 그렇습니다.
퀴즈게임이라고 한다면
아작스로 정답을 가져오는데 개발자모드로 미리 볼수 있으니 문제가 되서요
ps. 검색으로 찾을수가 없어서 질문 드린거에요..

정답이 어떤 형테인지 알아야 코드를 만들텐데요
질문이 명확하지않지만 하여튼 정답이 질문과 같은 한자리 숫자값이라면 다음처럼 하세요

알파벳과 숫자를 섞어서 베열을 만들고 그중 어느 한곳($nn)을 지정해서 정답을 넣어주는 것입니다
15번째에 정답이 몇번쩨인지 알려주는 값($nn)이 들어갑니다
이렇게 하면 소스를 보지않는 이상 정답을 알 수가 없습니다
더 어렵게 만들 수도 있지만 질문 정도의 것은 이 정도면 될 것으로 보입니다

tt.php

function my_ans($ans){
$tmp1 =array(1,1,1, 2,2,2,3,3,3,4,4,4,5,5,6,6,7,7,8,8,9,9,0.0); $tmp2 = range('a', 'j');
$tmp3 = array_merge($tmp1 , $tmp2);
shuffle($tmp3); $nn= rand(2,9);
$tmp3[$nn]=$ans;  $tmp3[15] = $nn;
$str= implode('',$tmp3); // echo $str;
//$nn= substr($str, 15,1);  $ans = substr($str,$nn,1); //테스트용
// echo '<br>'. $nn.'==>'.$ans;

 return $str;
 }


    ~~~
    $result['AA'] = my_ans($A+$B); 
    $result['BB'] = my_ans($A+$C);
========================
t.php

자바스트립트에서
dap = JSON.parse(data);

nn1 = dap.AA.substr(15,1); Aans =dap.AA.substr(nn1,1);
nn2 = dap.BB.substr(15,1); Bans =dap.BB.substr(nn2,1);

alert(nn1+'=='+Aans +"\n"+ nn2+'=='+Bans);

아무리 봐도 보기가 좀 찝찝해서요. 문자 중간에 | 이 들어가는 모양새가 폼이 안 나서

약간 다른 방식으로 바꿨습니다.

 


<script>
function uniString(uni) {
    for (gz = "", i = 103; i <= 122; i++) gz += String.fromCharCode(i);
    for (i in uni) document.write((i == 0 ? "" : gz[Math.floor(Math.random() * 19)]) + uni[i].charCodeAt(0).toString(16));
}
function f0String(str) {
    for (f0 = _f0 = "", i = 0; i < str.length; i++) _f0 += str[i].replace(/^[g-z]/, "|");
    _f0 = _f0.split("|");
    for (i in _f0) f0 += String.fromCharCode(parseInt(_f0[i],16));
    document.write(f0);
}
</script>
<div><script>uniString("그누보드 만만세")</script></div>
<div><script>f0String("adf8gb204qbcf4tb4dcn20wb9ccjb9ccuc138")</script></div>
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 947
© SIRSOFT
현재 페이지 제일 처음으로