ホームページ >バックエンド開発 >Golang >カスタム XTEA アルゴリズムを JavaScript から Golang に変換する

カスタム XTEA アルゴリズムを JavaScript から Golang に変換する

PHPz
PHPz転載
2024-02-15 10:27:08827ブラウズ

将自定义 XTEA 算法从 JavaScript 转换为 Golang

php エディター Zimo は、この記事でカスタム XTEA アルゴリズムを JavaScript から Golang に変換する方法を紹介します。 XTEA アルゴリズムは、データ セキュリティを保護するために一般的に使用される、シンプルで効果的な対称暗号化アルゴリズムです。 XTEA アルゴリズムを JavaScript から Golang に変換することで、同じ暗号化機能と復号化機能を異なるプログラミング言語で実装できるようになり、コードの移植性と相互運用性が向上します。この記事では、読者が XTEA アルゴリズムをよりよく理解し、適用できるように、アルゴリズムの原理と変換プロセスを詳細に紹介します。

質問の内容

現在、カスタム xtea 暗号化を JavaScript コードから golang に変換していますが、golang の出力は正しくなく、JavaScript の出力とは異なります。これが私の JavaScript ソース コードです:

リーリー

および golang ソースコード:

リーリー

この問題は黄金比と JavaScript 64 ビット浮動小数点システムへの変換に関連していると思います。正確な方法がわからないため適用しませんでした

回避策

これは go の実装です:

リーリー

イラスト

javascript 整数の安全な範囲は、-(2^53 - 1)2^53 - 1 の間です (「数値の整数範囲」を参照) 。 JavaScript 実装の注意が必要な点は、ビットごとの演算子が常にオペランドを 32 ビット整数 に変換することです (固定幅数値変換を参照)。

JavaScript の実装と一貫性を保つために、データ型は int64 である必要があります (int32 または uint32 には を収容するための十分なスペースがありません- (2^53 - 1) 2^53 - 1 の間の数値)。したがって、これらの変数は int64:

として宣言する必要があります。
  • v
  • のプロジェクト
  • key
  • の項目 ######和###### ######デルタ######
  • 次に、ビット単位の演算を実行する前に、各オペランドを int32
  • に変換します。

以上がカスタム XTEA アルゴリズムを JavaScript から Golang に変換するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。