import { useState } from 'react' import { sm3Digest, sm3Hmac } from './utils/algorithm/sm3' import { sm4Encrypt, sm4Decrypt } from './utils/algorithm/sm4' import { hexToUtf8, utf8ToHex } from './utils/convert' function App() { const [activeTab, setActiveTab] = useState('sm3') // SM3 状态 const [sm3Message, setSm3Message] = useState('') const [sm3Result, setSm3Result] = useState('') const [sm3HmacKey, setSm3HmacKey] = useState('') const [sm3HmacResult, setSm3HmacResult] = useState('') // SM4 状态 const [sm4Key, setSm4Key] = useState('') const [sm4Iv, setSm4Iv] = useState('') const [sm4Message, setSm4Message] = useState('') const [sm4Mode, setSm4Mode] = useState('ecb') const [sm4PaddingMode, setSm4PaddingMode] = useState<'pkcs7' | 'none'>('pkcs7') const [sm4Encrypted, setSm4Encrypted] = useState('') const [sm4Decrypted, setSm4Decrypted] = useState('') // 转换工具状态 const [hexInput, setHexInput] = useState('') const [utf8Input, setUtf8Input] = useState('') // SM3 计算 const handleCalculateSm3 = () => { try { const result = sm3Digest(sm3Message) setSm3Result(result) } catch (error) { alert('计算失败: ' + error) } } // SM3 HMAC 计算 const calculateSm3Hmac = () => { try { const result = sm3Hmac(sm3HmacKey, sm3Message) setSm3HmacResult(result) } catch (error) { alert('HMAC 计算失败: ' + (error instanceof Error ? error.message : error)) } } // SM4 加密 const handleEncryptSm4 = () => { try { const encrypted = sm4Encrypt(sm4Message, sm4Key, sm4Mode, sm4Iv, sm4PaddingMode) setSm4Encrypted(encrypted) } catch (error) { alert('加密失败: ' + (error instanceof Error ? error.message : error)) } } // SM4 解密 const handleDecryptSm4 = () => { try { const decrypted = sm4Decrypt(sm4Encrypted, sm4Key, sm4Mode, sm4Iv, sm4PaddingMode) setSm4Decrypted(decrypted) } catch (error) { alert('解密失败: ' + (error instanceof Error ? error.message : error)) } } // Hex 转 UTF8 const handleHexToUtf8 = () => { try { const utf8 = hexToUtf8(hexInput) setUtf8Input(utf8) } catch (error) { alert('转换失败: ' + error) } } // UTF8 转 Hex const handleUtf8ToHex = () => { try { const hex = utf8ToHex(utf8Input) setHexInput(hex) } catch (error) { alert('转换失败: ' + error) } } return (

安全算法计算工具

{/* SM3 面板 */} {activeTab === 'sm3' && (

SM3 算法