首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏用户7873631的专栏

    php扩展 sodium

    Sodium 是 PHP 中用于加密、解密和生成哈希的现代加密库。它提供了一组易于使用的加密工具,能够帮助开发者实现安全的数据存储和通信。以下是一些简单的用法示例: <? php // 生成随机密钥 $encryption_key = sodium_crypto_secretbox_keygen(); // 要加密的数据 $message = "Hello, Sodium ; // 生成随机的 nonce $nonce = random_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES); // 加密数据 $ciphertext = sodium_crypto_secretbox ($message, $nonce, $encryption_key); // 解密数据 $plaintext = sodium_crypto_secretbox_open($ciphertext, > 生成哈希 $password = "my_secret_password"; $hash = sodium_crypto_generichash($password); echo "原始密码: $

    36310编辑于 2024-07-12
  • 来自专栏硬核项目经理的专栏

    PHP的Sodium加密扩展函数了解

    PHP的Sodium加密扩展函数了解 这是本次加密扩展系列的最后一篇文章,也是我们要学习了解的最后一个 PHP 加密扩展。Sodium 出现的目的也是为了代替 Mcrypt 这个原来的加密扩展。 不过,Sodium 扩展的应用也并不是很多,大部分情况下我们都会使用 OpenSSL 来进行加密操作,同时,Sodium 扩展提供的函数也非常多,所以,我们这篇文章只做了解即可。 Sodium 扩展在 PHP7.2 后是跟随 PHP 源码一起发布的,只需要在编译的时候加上 --with-sodium 即可安装成功。如果是 PHP7.2 之前的版本,需要单独安装这个扩展。 // 信息签名 $key = sodium_crypto_auth_keygen(); // 生成随机签名密钥 $message = '测试认证签名'; // 生成签名 $signature = sodium_crypto_auth // Hash $password = '测试Hash'; $hash = sodium_crypto_pwhash_str( $password, SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE

    2K20发布于 2020-12-14
  • 来自专栏开源技术小栈

    PHP官方现代化核心加密库 Sodium

    不过,Sodium 扩展的应用也并不是很多,大部分情况下我们都会使用 OpenSSL 来进行加密操作,同时,Sodium 扩展提供的函数也非常多 Sodium 扩展在 PHP7.2 后是跟随 PHP 源码一起发布的 修改php.ini extension=sodium.so 查看模块 php -m |grep sodium sodium 简单使用 加密 <? 'iv' => sodium_bin2base64($iv, SODIUM_BASE64_VARIANT_ORIGINAL), 'aad' => sodium_bin2base64($aad , SODIUM_BASE64_VARIANT_ORIGINAL), 'cipher_text' => sodium_bin2base64($encrypt, SODIUM_BASE64 SODIUM_BASE64_VARIANT_ORIGINAL); $cipherText = sodium_base642bin($secretData['cipher_text'], SODIUM_BASE64

    72410编辑于 2024-08-19
  • 来自专栏sofu456

    编译配置in文件

    源码编译过程中遇到类似如下in文件 #ifndef sodium_version_H #define sodium_version_H #include "export.h" #define SODIUM_VERSION_STRING "@VERSION@" #define SODIUM_LIBRARY_VERSION_MAJOR @SODIUM_LIBRARY_VERSION_MAJOR @ #define SODIUM_LIBRARY_VERSION_MINOR @SODIUM_LIBRARY_VERSION_MINOR@ @SODIUM_LIBRARY_MINIMAL_DEF@ # ifdef __cplusplus extern "C" { #endif SODIUM_EXPORT const char *sodium_version_string(void); SODIUM_EXPORT int sodium_library_version_major(void); SODIUM_EXPORT int sodium_library_version_minor

    1.1K20编辑于 2022-06-26
  • 来自专栏SnailTyan

    重叠构造函数模式_Effective Java 2.0_Item 2知识点

    private final int calories; // optional private final int fat; // (g) optional private final int sodium } public NutritionFacts(int servingSize, int servings, int calories, int fat, int sodium ) { this(servingSize, servings, calories, fat, sodium, 0); } public NutritionFacts(int servingSize, int servings, int calories, int fat, int sodium, int carbohydrate) { this.servings = servings; this.calories = calories; this.fat = fat; this.sodium

    41420编辑于 2022-05-09
  • 来自专栏mingmingcome’s cnblogs

    建造者模式

    ) { this(servingSize, servings, calories, fat, sodium, 0); } public NutritionFacts(int servingSize ; this.servings = servings; this.calories = calories; this.fat = fat; this.sodium = sodium; =" + sodium + ", carbohydrate=" + carbohydrate + "]"; } } 这么多参数的构造函数,你怎么记得住。 = builder.sodium; carbohydrate = builder.carbohydrate; } @Override public String toString() { =" + sodium + ", carbohydrate=" + carbohydrate + "]"; } } 这个缺点也很明显啊,多了一个builder类。

    58410发布于 2021-11-29
  • 来自专栏极客起源

    Java高效编程(2):面对多个构造参数时考虑使用构建器模式

    private final int calories; // 可选 private final int fat; // 可选 private final int sodium fat, 0); } public NutritionFacts(int servingSize, int servings, int calories, int fat, int sodium ) { this(servingSize, servings, calories, fat, sodium, 0); } } 虽然这种方法在小范围内可行,但随着可选参数的增多, = builder.sodium; this.carbohydrate = builder.carbohydrate; } public static class Builder int calories = 0; // 默认值 private int fat = 0; // 默认值 private int sodium

    35010编辑于 2024-11-23
  • 来自专栏SnailTyan

    Effective Java 2.0_Item 2_中文版

    private final int calories; // optional private final int fat; // (g) optional private final int sodium ) { this(servingSize, servings, calories, fat, sodium, 0); } public NutritionFacts(int servingSize, int servings, int calories, int fat, int sodium, int carbohydrate) { / Required; no default value private int calories = 0; private int fat = 0; private int sodium (int val) { sodium = val; return this; } public NutritionFacts

    44920编辑于 2022-05-09
  • 来自专栏海仔技术驿站

    当构造方法参数过多时使用builder模式

    serving) optional private final int fat; // (g/serving) optional private final int sodium ) { this(servingSize, servings, calories, fat, sodium, 0); } public NutritionFacts(int servingSize, int servings, int calories, int fat, int sodium, int carbohydrate) { = sodium; this.carbohydrate = carbohydrate; } }   当想要创建一个实例时,可以使用包含所有要设置的参数的最短参数列表的构造方法 下面是客户端代码的示例: NutritionFacts cocaCola = new NutritionFacts.Builder(240, 8) .calories(100).sodium(35

    1.2K30发布于 2019-08-06
  • 来自专栏bit哲学院

    【Effective Java】Ch2_创建销毁对象:Item2_当构造函数参数过多时考虑使用builder

          //      optional     private final int fat;           // (g)  optional     private final int sodium     }     public NutritionFacts(int servingSize, int servings,         int calories, int fat, int sodium ) {         this(servingSize, servings, calories, fat, sodium, 0);     }     public NutritionFacts (int servingSize, int servings,     int calories, int fat, int sodium, int carbohydrate) {         客户端代码就像下面这样:  NutritionFacts coca = new NutritionFacts.Builder(240,8)         .calories(100).sodium(35

    71620发布于 2020-12-15
  • 来自专栏SnailTyan

    Java中的静态内部类_Effective Java 2.0_Item 2知识点

    final int servings; private final int calories; private final int fat; private final int sodium calories = 0; private int fat = 0; private int carbohydrate = 0; private int sodium (int val) { sodium = val; return this; } public NutritionFacts = builder.sodium; carbohydrate = builder.carbohydrate; } } 静态内部类的使用: NutritionFacts cocaCola = new NutritionFacts.Builder(240, 8).calories(100).sodium(35).carbohydrate(27).build(); 参考资料 1、Effective

    47840编辑于 2022-05-09
  • 来自专栏专注 Java 基础分享

    如何使用建造者模式构造复杂对象?

    servings;// required private int calories;// optional private int fat;// optional private int sodium //..... } public Nutrition(int servingSize, int servings,int calories, int fat,int sodium { //..... } public Nutrition(int servingSize,int servings,int calories,int fat,int sodium nutrition.setFat(fat); return this; } public AbstractBuilder setSodium(int sodium ){ nutrition.setSodium(sodium); return this; } public AbstractBuilder setCarbohydrate

    96030发布于 2021-04-22
  • 来自专栏生物信息云

    R语言数据分析与挖掘(第五章):方差分析(3)——协方差分析

    > data(hotdog) > dim(hotdog) [1] 54 3 > head(hotdog) Type Calories Sodium 1 Beef 186 495 2 :645.0 下面利用该数据集进行协方差分析,由于hotdog中肉质的种类可以人为控制,但肉质的卡路里是难以控制的,故考虑将 Sodium作为响应变量,Calories作为协变量进行方差分析。 > ancova(Sodium ~ Calories,data=hotdog, groups=Type) Analysis of Variance Table Response: Sodium 若考虑变量Type和Calories进行协方差分析,代码如下: > ancova(Sodium ~ Calories + Type, data=hotdog) Analysis of Variance Table Response: Sodium Df Sum Sq Mean Sq F value Pr(>F) Calories 1 106270 106270

    8.1K31发布于 2019-12-17
  • 来自专栏Ray学习笔记

    Effective Java(一)

    = sodium; this.carbohydrate = carbohydrate; } @Override public String toString( =" + sodium + ", carbohydrate=" + carbohydrate + '}'; } public ) { this.sodium = sodium; } public void setCarbohydrate(int carbohydrate) { =" + sodium + ", carbohydrate=" + carbohydrate + '}'; } public = builder.sodium; carbohydrate = builder.carbohydrate; } @Override public String

    81010发布于 2020-08-03
  • 来自专栏实战docker

    java与es8实战之一:以builder pattern开篇

    ) { this(servingSize, servings, calories, fat, sodium, 0); } public NutritionFacts(int servingSize, int servings, int calories, int fat, int sodium, int carbohydrate) { = servings; this.calories = calories; this.fat = fat; this.sodium = sodium; this.carbohydrate = carbohydrate; } } 从上面的代码可见,为了尽量满足用户需要,NutritionFacts (int val) { sodium = val; return this; } public NutritionFacts build() {

    89730编辑于 2022-06-19
  • 来自专栏维C果糖

    效率编程 之「创建和销毁对象」

    ) { this(servingSize, servings, calories, fat, sodium, 0); } public NutritionFacts(int = sodium; this.carbohydrate = carbohydrate; } } 如上述代码所示,为重叠构造器模式。 ) { this.sodium = sodium; } public void setCarbohydrate(int carbohydrate) { (int sodium) { this.sodium = sodium; return this; } public Builder = builder.sodium; carbohydrate = builder.carbohydrate; } } 如上述代码所示,为Builder模式。

    71530发布于 2019-05-26
  • 来自专栏架构师成长之路

    java(4)-深入理解java嵌套类、内部类以及内部类builder构建构造函数六、使用 builder 模式解决构造方法参数过多的情况

    // (per serving) optional private final int fat; // (g/serving) optional private final int sodium ) { this(servingSize, servings, calories, fat, sodium, 0); } public NutritionFacts(int servingSize, int servings, int calories, int fat, int sodium, int carbohydrate) { / Required; no default value private int calories = 0; private int fat = 0; private int sodium = build.sodium; carbohydrate = build.carbohydrate; } } NutritionFacts 类是不可变的,所有的参数默认值都在一个地方

    2.1K10编辑于 2022-04-14
  • 来自专栏Kevinello的技术小站

    Kevinello的minecraft服务器

    不装也可以正常游玩服务器) Mod名 说明 客户端 服务端 Roughly Enough Items REI 更好的合成菜单 ✅ ❌ continuity 无缝玻璃 ✅ ❌ Iris 新时代光影mod ✅ ❌ Sodium 新时代渲染引擎,客户端优化 ✅ ❌ Indium Sodium附加包(Fabric Rendering API) ✅ ❌ InventoryProfilesNext 背包整理 ✅ ❌ lambdynamiclights 动态光源优化 ✅ ❌ mod menu mod管理 ✅ ❌ pinglist 实时显示ping值 ✅ ❌ Sodium Extra 视频设置控制面板优化 ✅ ❌ Reese’s Sodium Options

    2K31编辑于 2022-08-19
  • 来自专栏SnailTyan

    Effective Java 2.0_中英文对照_Item 2

    calories per serving and over twenty optional fields—total fat, saturated fat, trans fat, cholesterol, sodium ) { this(servingSize, servings, calories, fat, sodium, 0); } public NutritionFacts(int servingSize, int servings, int calories, int fat, int sodium, int carbohydrate) { = sodium; this.carbohydrate = carbohydrate; } } When you want to create an instance, you (int val) { sodium = val; return this; } public NutritionFacts

    49320编辑于 2022-05-09
  • 来自专栏reizhi

    为 WordPress 添加支持无密码登录认证

    PHP 环境准备 2.1 GMP 扩展 2.2 sodium 扩展 2.3 修改 php.ini 3.安装扩展 4.登陆测试 0.什么是无密码登录 今年早些时候,苹果联合微软和谷歌发布声明,将扩大对 PHP 环境准备 在为 WordPress 添加支持无密码登录之前,首先需要额外安装一些 PHP 扩展,如 gmp 和 sodium 。 /configure --with-php-config=/usr/local/php/bin/php-config #确认无报错后执行: make && make install 2.2 sodium 扩展 apt install libsodium-dev cd ~/lnmp1.9/src/php-8.1.5/ext/sodium /usr/local/php/bin/phpize . 修改 php.ini nano /usr/local/php/etc/php.ini #在 extension_dir 行下面添加以下两行: extension = gmp extension = sodium

    1.1K10编辑于 2022-11-22
领券