奇妙な質問のビット。私は、古典的なASPのいくつかのページを持っているWebサイト、ASP.netの他のWebサイトを持っています。古典的なASP乱数とC#乱数の照合
私はグラフト画像をキャッシュするスクリプトを持っています。これは、次のいずれかの場所で、クッキーレスドメインでホストされています。
http://static1.scirra.net
http://static2.scirra.net
http://static3.scirra.net
http://static4.scirra.net
ページは私のASP.netサイト上でグラバターを要求すると、それは静的サーバーにランダムにそれを配布し、この機能を通過します:ウェブサイトの私のクラシックASP部品で
/// <summary>
/// Returns the static url for gravatar
/// </summary>
public static string GetGravatarURL(string Hash, int Size, int AuthorID)
{
Random rndNum = new Random(AuthorID);
int ServerID = rndNum.Next(0, 4)+1;
string R = "//static" + ServerID.ToString() + ".scirra.net/avatars/" + Size + "/" + Hash + ".png";
return R;
}
機能である:
function ShowGravatar(Hash, AuthorID)
Dim ServerID
Randomize(AuthorID)
ServerID = Int((Rnd * 4) + 1)
ShowGravatar = "//static" & ServerID & ".scirra.net/avatars/" & intGravatarSize & "/" & Hash & ".png"
end function
それはうまく動作し、それはユーザーID上にシードをつけて、静的なサーバーにサーバーのアバターを割り当てます。唯一の問題は、C#と従来のASP RNGの結果が異なることです!これは、同じイメージが最大2つの異なるドメインに配信されるため、キャッシュには最適ではありません。
これは簡単な方法ですか?
予測可能な値を返す乱数生成器は、ハッシュと呼ばれる
脇役として:電子メールを公開してからgravatarを使用しないようにしてください。多くのウェブサイトはそのようにユーザーに嘘をつきます。 – CodesInChaos
@Codeinchaos、どういう意味ですか?ハッシュは基本的には正式なものではありませんか? –
多くの電子メールアドレスは低いエントロピーであり、推測することができます。たとえば、私はグラバターハッシュからSOの電子メールアドレスの> 20%を得ることができましたが、より多くの計算能力とより良い電子メール生成アルゴリズムにより、より高いパーセンテージが可能になります。 – CodesInChaos