• ベストアンサー

暗号化文字列を英数字のみにしたい

文字列をJavaで暗号化してURLのクエリストリングに付加したいのですが、「=」「+」等の記号が含まれるとURLエンコーディングしないといけません。 こちらの都合上それを防ぎたいので、暗号化後の文字列を半角英数字のみで構成されるようにしたいのです。 いい案があればご教授ください。 尚、現在はアルゴリズムBlowfishで暗号化したバイト配列をBase64方式にてエンコードしています。 それですと記号が含まれてしまいます。

noname#29377
noname#29377
  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • elmclose
  • ベストアンサー率31% (353/1104)
回答No.1

暗号化後の文字列を全て16進コードに変換すればよいのではないでしょうか。暗号の強度が落ちることもありませんし。文字列が長くなることが欠点ですが、あなたの要求を満たすことはできます。

noname#29377
質問者

お礼

その通りですね。 単純なことで失礼いたしました。 ご回答いただきありがとうございます。

関連するQ&A

  • VBで暗号化した文字列をJavaで複合化することは可能でしょうか。

    VBで暗号化した文字列をJavaで複合化することは可能でしょうか。 (異なる言語間での暗号化/複合化は不可能でしょうか。) 現在考えているのは、BlowFishで暗号化し、BASE64でエンコードしたリクエストを送信し、 Java側でBASE64でデコードし、BlowFishで複合化することを考えています。 VBとJavaで同じ文字列を暗号化して比較してみたところ、一致しませんでした。

  • 暗号化・復号化のアルゴリズムにはどんなものがありますか?

    Cでプログラミングを勉強しており、20文字ほどの文字列を暗号化・復号化するプログラムを考えていますが、ネットを検索しても暗号化アルゴリズムでなかなかいいものが見つかりません。 私のリクエストとしては ・暗号化対象は半角英数字、半角記号のみ。 ・単に文字コードを1つずつずらしたような簡単な暗号ではなく、複雑なアルゴリズムを使用したい。 ・アルゴリズムは複雑でもプログラムは簡潔にできるものがいい。(長くても数百行程度)。 ・アルゴリズム自体の仕様が公開されている。 ・アルゴリズムは数学式で表せるものがいい。 ・スーパーコンピュータを使わなければ解けないほど時間がかかる暗号化アルゴリズムでなくてもいい。 ・暗号化のライブラリファイルは使わず、自前で全部コードを書きたい。 ・公開鍵や秘密鍵を使わなくてもいい。 上記の条件を満たす暗号化アルゴリズムでいいものがありましたら、教えてください。 以上、よろしくお願いします。

  • VB.NET Blowfishで文字列を暗号化

    VB.NET Blowfishで文字列を暗号化したいです。 いろいろ調べているのですが、 見つけられない状況です。 参考となるソースコードなどご教授いただけますと幸いです。

  • エクセル 文字列に使われている文字のカウント

    セルの文字列に使われている文字を数えるにはどのようにしたら良いでしょうか?文字列は半角の英数字記号です。 例) 11111 -> 1 sdsdsd -> 2 xyzxyz -> 3 abc777 -> 4 g&id#d -> 5 qwerty -> 6

  • LINUXで半角の英数字以外の文字列をgrep検索したい

    LINUXで半角の英数字以外の文字列をgrep検索したい たとえば a!3" とか 30%(under_s) とか grepでもなんでもよいですが上記のような半角英数字以外の文字列を検索できますでしょうか。 grep -c で、半角英数字以外の文字列があるかどうか確認したいです。 よろしくお願いします。

  • 半角英数字を大文字に変換する方法、初心者です。

    HPの設定の過程で英数字の小文字と大文字で出来たパスワードを入れるようになってます。 半角小文字はキーボード左上の「半角/全角 漢字」を押せば入ってると思うんですが (注:記号を打ち込んでも***の記号で表示されるため分からないのです) 英数字を半角大文字に変換するのはどのようにしたらよいのでしょうか? 打ち込んで記号、英数字を表示されるのであれば出来るんですが…  質問の内容が少し分かりづらいかもしれませんが宜しくお願いします。

  • phpのコードで暗号化された文字列を得る方法

    WordPressの無料で配布されているテンプレートの footer.phpにはこのようなコードが書かれています。 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ <? eval(gzinflate(base64_decode('暗号化された文字列'))); ?> _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ 文字列には英数字が沢山並んでいますが、これを暗号化される前の状態にしたいです。 どうすれば良いでしょうかご教示お願いします。

    • 締切済み
    • PHP
  • ユニークな文字列を作りたい。

    C♯、.NET FrameWordk2.0環境です。 戻り値として32~35桁のユニークな文字列(半角英数字のみ)を返すメソッドを 作りたいと思っています。 GUIDを発行してやれば良いかと思ったんですが、ハイフンが入っていたり、 アルファベットが大文字小文字混じっていたり(小文字のみにしたい)で、そのままでは 使えません。 発行したGUIDを、サクッと半角英数字(英字は小文字に置換)できるような方法は ないでしょうか? または、もっと簡単にユニークな文字列を発行できる方法がありましたら、ご教授 いただけるとありがたいです。 宜しくお願いします。

  • mcryptで英数字(12未満)のみにする方法

    指定した文字をmycryptを使って12文字未満の英数字に暗号化したいのですが、 記号など含まれず、英数字のみに暗号化するにはどのようなコードを書けばよいのでしょうか? コードを書いて頂けると助かります。 宜しくお願い致します。

    • 締切済み
    • PHP
  • なぜ英数字を半角にする人が多いのか?(なぜ英数字以外の記号は半角にしないのか?)

    ネット上を見てると、英数字……取り分け数字は、 どんな場合でも(1桁でも2桁でも関係なく)半角にしている人が多いように思えます。 これはなぜでしょうか? 「それは昔からの決まりだから。」と聞いたことがあるのですが、 そういう人の中には、僕が思うに英数字を半角にしているだけで、 「!」「?」「#」「&」など、カタカナ以外の半角にできる記号を、半角にしていない人がいるんです。 これっておかしいと思います。 おそらく英数字を半角にするのが昔からの決まりだったのは、 昔のパソコンを使っていた人の多くが1バイト文字を使っていたからでしょうし……。 それなら、カタカナは別として、英数字だけでなく、他のすべての記号を半角入力するべきだと思います。 英数字だけ半角なんて、絶対中途半端だし、変です。 「英数字だけ半角にするのに、他の記号は半角にしない理由。」 回答お待ちしております。