String#crypt (Ruby 3.0.0 リファレンスマニュアル)

Ruby の String#crypt は 2.6 から非推奨となっている。

  • Ruby 2.6 から非推奨になったため、引き続き必要な場合は string-crypt gem の使用を検討してください。
  • crypt の処理は crypt(3) の実装に依存しています。 従って、crypt で処理される内容の詳細や salt の与え方については、 利用環境の crypt(3) 等を見て確認してください。
  • crypt の結果は利用環境が異なると変わる場合があります。 crypt の結果を、異なる利用環境間で使用する場合には注意して下さい。

もし引き続きおなじ関数を利用したければ ruby-string-crypt gem を利用する必要がある。

プロと読み解く Ruby 2.6 NEWS ファイル - クックパッド開発者ブログ

String#crypt is now deprecated. Feature #14915

crypt(3) はなんかもう古くて脆弱なので消しましょう、ということで、2.6 では非推奨となりました。まあ、String クラスのメソッドにするのは現代から見たらやりすぎですよね。

互換レイヤとして string-crypt gem がリリースされています。

require "string-crypt"

mogest/unix-crypt

crypt の処理は crypt(3) の実装に依存しています。

とのことでカーネルに依存しないコードを書きたい。

この mogest/unix-crypt の実装は Pure Ruby 実装なのでカーネルのシステムコール crypt(3) には依存しないかたちで crypt 関数を呼べて良さそう。

古い gem だけどそもそも crypt(3) 自体が古い実装だし Deprecated なので致し方なし、といったところ。