> 백엔드 개발 > Golang > 사용자 정의 XTEA 알고리즘을 JavaScript에서 Golang으로 변환

사용자 정의 XTEA 알고리즘을 JavaScript에서 Golang으로 변환

PHPz
풀어 주다: 2024-02-15 10:27:08
앞으로
832명이 탐색했습니다.

将自定义 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 사이입니다(숫자의 정수 범위 참조). 자바스크립트 구현에서 까다로운 부분은 비트 연산자가 항상 피연산자를 32비트 정수로 변환한다는 것입니다 (고정 너비 숫자 변환 참조).

자바스크립트 구현과 일관성을 유지하려면 데이터 유형이 int64여야 합니다(int64int32uint32 没有足够的空间容纳 -(2^53 - 1)2^53 - 1 之间的数字)。所以这些变量应该声明为 int64 또는 uint32에는

사이의 숫자를 입력할 공간이 부족함). 따라서 이러한 변수는 int64로 선언되어야 합니다.
  • v
  • 의 항목 key
  • 의 항목 sum
  • delta

int32그런 다음 비트 연산을 수행하기 전에 각 피연산자를

로 변환합니다. 🎜

위 내용은 사용자 정의 XTEA 알고리즘을 JavaScript에서 Golang으로 변환의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿