點燈坊

失くすものさえない今が強くなるチャンスよ

將 String 以 SHA256 編碼

Sam Xiao's Avatar 2024-11-18

crypto 可將 String 以 SHA256 編碼。

Version

Flutter 3.24

crypto

$ flutter pub add crypto
  • 安裝 crypto package

Flutter

crypto01

  • Android 與 iOS 都成功使用 crypto 實現 SHA256 編碼

crypto

import 'dart:convert';

import 'package:crypto/crypto.dart';
import 'package:flutter/material.dart';

class Home extends StatelessWidget {
  const Home({super.key});

  String _toSha256(String input) {
    final bytes = utf8.encode(input);
    final digest = sha256.convert(bytes);
    return digest.toString();
  }

  
  Widget build(BuildContext context) {
    var appBar = AppBar(
      title: const Text('SHA256'),
    );

    var body = Center(
      child: Text(
        _toSha256('Hello World'),
      ),
    );

    return Scaffold(
      appBar: appBar,
      body: body,
    );
  }
}

Line 9

String _toSha256(String input) {
  final bytes = utf8.encode(input);
  final digest = sha256.convert(bytes);
  return digest.toString();
}
  • utf8.encode():將 String 轉換成 UTF-8 的 byte array
  • sha256.convert():將 byte array 以 SHA256 編碼

Conclusion

  • Dart 並沒有內建 SHA256 編碼,需要另外安裝 crypto package