2016-04-27 7 views
2

Ich habe eine RoR Anwendung, die folgenden in seiner application.rbapplication.rb Überschreibung Basis Ruby-Klasse

Digest::MD5 = Digest::SHA256 

Das wiederum tut sorgt dafür, dass jedes Mal wenn jemand ruft Digest::MD5, dass es stattdessen das Ergebnis mit einem ersetzen Digest::SHA256. Ich glaube, dass dies einige unbeabsichtigte Konsequenzen haben wird, wie etwa Laufzeitprobleme, die schwer zu debuggen sind. Gibt es eine Alternative zu diesem Ansatz oder ist dieser Klang?

Antwort

2

Sieht für mich ziemlich gefährlich aus. Ich verstehe, dass ich SHA256 über MD5 verwenden möchte, aber sie sind definitiv nicht interoperabel, und es gibt sicherlich nützliche Anwendungen für MD5, die von einigen Ihrer Abhängigkeiten verwendet werden können.

Verwenden Sie stattdessen einen umgebenden Alias, um eine Warnung auszugeben, wenn MD5 verwendet wird?

+0

also, während die Warnung hilft, was wäre, wenn MD5 auf Betriebssystemebene blockiert wäre und daher einen Fehler erzeugen würde, wenn es aufgerufen wurde, daher die Anwendung zu stoppen? – Woot4Moo

+0

Ich glaube nicht Digest :: MD5 kann auf Betriebssystemebene blockiert werden, oder? Die Implementierung sollte für Ruby und nicht für das Betriebssystem spezifisch sein. –

+0

Es kann, wenn Sie FIPS erzwingen – Woot4Moo

Verwandte Themen