uses SHA1, Base64; <br><br>function GetHashedBiosInfo: string; <br>var <br>SHA1Context: TSHA1Context; <br>SHA1Digest: TSHA1Digest; <br>begin <br>// Get the BIOS data <br>SetString(Result, PChar(Ptr($F0000)), $10000); <br>// Hash the string <br>SHA1Init(SHA1Context); <br>SHA1Update(SHA1Context, PChar(Result), Length(Result)); <br>SHA1Final(SHA1Context, SHA1Digest); <br>SetString(Result, PChar(@SHA1Digest), sizeof(SHA1Digest)); <br>// Return the hash string encoded in printable characters <br>Result := B64Encode(Result); <br>end; <br><br><br>function GetBiosInfoAsText: string; <br>var <br>p, q: pchar; <br>begin <br>q := nil; <br>p := PChar(Ptr($FE000)); <br>repeat <br>if q <> nil then begin <br>if not (p^ in [#10, #13, #32..#126, #169, #184]) then begin <br>if (p^ = #0) and (p - q >= 8) then begin <br>Result := Result + TrimRight(String(q)) + #13#10; <br>end; <br>q := nil; <br>end; <br>end else <br>if p^ in [#33..#126, #169, #184] then <br>q := p; <br>inc(p); <br>until p > PChar(Ptr($FFFFF)); <br>Result := TrimRight(Result); <br>end; <br><br>procedure TForm1.FormCreate(Sender: TObject); <br>begin <br>Memo1.Lines.Text := GetBiosInfoAsText; <br>end; <br><br>SHA1, Base64这两个单元可以在这里下载到<br>http://www.latiumsoftware.com/en/articles/00005.php