2017-03-04 6 views
1

私はMySQLで暗号化を作成しようとしています。 文字列があるとします。MySQLで暗号化を作成する

"私は多くの人のために走れる"。

各文字を4番目の文字に置き換えたいとします。 例えば、上記の

'a' replaced with 'e' 
'b' replaced with 'f' 
and so on. 

最終的な出力は次のようになります。 「私はあなたのために」

私が思いつくのは以下のとおりです。 ネストされた関数なので、正しい結果が得られません。 以下の関数は 'a'を 'e'に置き換え、最後に 'e'を 'i'に置き換えます。

select messagetext, 
replace(replace(replace(replace(replace(replace(replace(replace 
(replace(replace(replace(replace(replace(replace(replace 
(replace(replace(replace(replace(replace(replace(replace 
(replace(replace(replace(replace(messagetext,'a','e'), 
'b','f'),'c','g'),'d','h'),'e','i'),'f','j'),'g','k'), 
'h','l'),'i','m'),'j','n'),'k','o'),'l','p'),'m','q'), 
'n','r'),'o','s'),'p','t'),'q','u'),'r','v'),'s','w'), 
't','x'),'u','y'),'v','z'),'w','a'),'x','b'),'y','c'), 
'z','d') 
from chat; 

ご協力いただければ幸いです。

+0

これは非常に優れた暗号化ではありません。シーザーの単純な暗号で、すぐに破損する可能性があります。 – Psi

+0

https://en.wikipedia.org/wiki/Caesar_cipher – Sangharsh

+0

私は同意する、私はプロジェクトの仕事を完了するために必要です。私はMysqlで行う方法を理解することができません –

答えて

0

リーチされた部分的な解決策になりました。

他人がこれに取り組むことができるようにここに置く。

クエリ:PS

CREATE TABLE caeser (val VARCHAR(255)); 
INSERT INTO caeser ('abcdef'); 
INSERT INTO caeser VALUES ('uvwxyz'); 

SELECT UNHEX(HEX(val) + REPEAT('04', LENGTH(val))) AS rot4 FROM caeser; 

+--------+ 
| rot4 | 
+--------+ 
| efghip | 
| aq?? | <-- Need to rotate/mod hex value for this. (Stuck here) 
+--------+ 

表クエリを作成し、他にも貢献している場合、コミュニティのwikiに変換します。

+0

'REPLACE'を使用して' z 'を超える値を置き換えます。 – Sangharsh

関連する問題