アプリ版:「スタンプのみでお礼する」機能のリリースについて

必要があってパスワードの認証をする必要がでてきました。パスワードはデータベースに保存されるのですが、データベースを見られてパスワードがばれるのは避けたいので、一種の暗号化関数のようなもので文字列を変換してからデータベースに格納し、パスワードの照合もこの関数で変換して行えばいいのではないかと考えております。こういう関数の例はどこかにないでしょうか? 関数のソースからアルゴリズムが知られ、返還後の文字列が知られても、逆変換でパスワードを得るのが実用的な時間で計算するのが困難であればよいと思います。ただ、本当の暗号のような多桁の掛算のような複雑なことはやらないですましたいと思っております。せいぜい64ビットの掛算ですめばベストです。悪くとも128ビットの掛算ですましたいです。よいアルゴリズムはないでしょうか?

A 回答 (1件)

crypt()は使える環境なのでしょうか?systemに用意されてなくても、linuxや*BSDから移植するのは可能でしょう。


crypt()さえ使えれば、
#include <stdio.h>
#include <string.h>
char *crypt(const char *key, const char *salt);

int main(void) {
char buf[80];
char pass[80];

printf("input passwd: ");
fgets(buf,80,stdin);

strcpy(pass, crypt(buf, "ab"));
printf("crypt = %s\n", pass);

printf("input passwd: ");
fgets(buf,80,stdin);

if (strcmp(pass, crypt(buf, "ab")) == 0) {
printf("OK\n");
}
else {
printf("NG\n");
}
return (0);
}
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
cryptで目的のことができました。
ありがとうございました。

お礼日時:2007/10/20 04:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!