首页 > 其他分享 >1.WPF UI - 现代化设计的开源 WPF 框架

1.WPF UI - 现代化设计的开源 WPF 框架

时间:2023-04-20 10:58:56浏览次数:48  
标签:ICryptoNet 开源 UI var new WPF cryptoNet

1.WPF UI - 现代化设计的开源 WPF 框架

WPF UI 是一个基于 C# 开发的, 拥有 4k star 的开源 UI 框架。WPF UI 在 WPF 的基础上,提供了更多的现代化,流利的,直观的设计和组件。重要的是,WPF UI 完全免费!

如果你对 WPF 比较熟悉,那么可以很快的上手这个 UI 框架,并集成中项目中去。WPF UI 提供了完善的使用文档,对新手非常友好。

截图

如何使用

  1. 使用 Visual Studio 中的 Nuget 包管理器,安装 WPF-UI

  2. 更新 App.xaml 文件,如下

    <Application 
      xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml">
      <Application.Resources>
        <ResourceDictionary>
          <ResourceDictionary.MergedDictionaries>
            <ui:ThemesDictionary Theme="Dark" />
            <ui:ControlsDictionary />
          </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
      </Application.Resources>
    </Application>
    
  3. 试试 WPF-UI 的按钮, 尽情使用吧!

    <ui:UiWindow
      ...
      xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml">
      <Grid>
        <ui:Button
          Content="Hello World"
          Icon="Fluent24"/>
      </Grid>
    </ui:UiWindow>
    

项目地址: https://wpfui.lepo.co/

2.开源力作!使用 Blazor 和 C# 构建 K8s Dashboard

blazor-k8s

blazor-k8s 是一个开源项目,它使用了 blazor 和 C# 构建了 k8s dashboard。允许用户在界面上直接操作 k8s,进行资源管理。

部署

1 k8s部署体验

一键安装

kubectl apply -f https://raw.githubusercontent.com/weibaohui/blazork8s/main/deploy/deployment.yaml

访问

默认使用了nodePort开放,请访问31999端口 http://NodePortIP:31999

docker 体验
启动服务器

docker run -d --name blazork8s  -v ~/.kube/:/root/.kube/ -p 4001:443 -p 4000:80 ghcr.io/weibaohui/blazork8s:latest

界面预览

项目地址:https://github.com/weibaohui/blazork8s

3. Dotnet 加解密算法库

CryptoNet

CryptoNet 是一个简单、快速且轻量级的非对称和对称加密 NuGet 库,支持跨平台 Windows、Linux。不依赖其他库, 100% C# 实现。

CryptoNet 可以通过两种方式使用:

  • 对称方式
  • 非对称方式

对称方式

您使用相同的密钥进行加密和解密。

非对称方式

通过非对称方式,CryptoNet 可以使用自己生成的 RSA 密钥对(私钥/公钥)来加密和解密内容。

您可以将私钥存储在一台或多台机器上。公钥可以轻松分发给所有客户端。

使用示例

1.使用对称密钥加密和解密内容

在下面示例中,CryptoNetAes 生成随机的密钥和 iv。

ICryptoNet cryptoNet = new CryptoNetAes();
var key = cryptoNet.ExportKey();

ICryptoNet encryptClient = new CryptoNetAes(key);
var encrypt = encryptClient.EncryptFromString(ConfidentialDummyData);

ICryptoNet decryptClient = new CryptoNetAes(key);
var decrypt = decryptClient.DecryptToString(encrypt);

Debug.Assert(ConfidentialDummyData == decrypt);

2.使用导出和导入, 自己生成的对称密钥,来加密和解密内容

ICryptoNet cryptoNet = new CryptoNetAes();
var file = new FileInfo(SymmetricKeyFile);
cryptoNet.ExportKeyAndSave(file);

Debug.Assert(File.Exists(file.FullName));

var encrypt = cryptoNet.EncryptFromString(ConfidentialDummyData);
        
ICryptoNet cryptoNetKeyImport = new CryptoNetAes(file);
var decrypt = cryptoNetKeyImport.DecryptToString(encrypt);

Debug.Assert(ConfidentialDummyData == decrypt);

3. 生成非对称 Rsa 密钥对,导出私钥和公钥,使用公钥加密和使用私钥解密

ICryptoNet cryptoNet = new CryptoNetRsa();

cryptoNet.ExportKeyAndSave(new FileInfo(PrivateKeyFile), true);
cryptoNet.ExportKeyAndSave(new FileInfo(PublicKeyFile), false);

Debug.Assert(File.Exists(new FileInfo(PrivateKeyFile).FullName));
Debug.Assert(File.Exists(new FileInfo(PublicKeyFile).FullName));

ICryptoNet cryptoNetPubKey = new CryptoNetRsa(new FileInfo(PublicKeyFile));
var encrypt = cryptoNetPubKey.EncryptFromString(ConfidentialDummyData);

ICryptoNet cryptoNetPriKey = new CryptoNetRsa(new FileInfo(PrivateKeyFile));
var decrypt = cryptoNetPriKey.DecryptToString(encrypt);

Debug.Assert(ConfidentialDummyData == decrypt);

4. 使用 X509 证书用公钥加密,然后用私钥解密

X509Certificate2? certificate = CryptoNetUtils.GetCertificateFromStore("CN=Maytham");

ICryptoNet cryptoNetWithPublicKey = new CryptoNetRsa(certificate, KeyType.PublicKey);
var encryptWithPublicKey = cryptoNetWithPublicKey.EncryptFromString(ConfidentialDummyData);

ICryptoNet cryptoNetWithPrivateKey = new CryptoNetRsa(certificate, KeyType.PrivateKey);
var decryptWithPrivateKey = cryptoNetWithPrivateKey.DecryptToString(encryptWithPublicKey);

Debug.Assert(ConfidentialDummyData == decryptWithPrivateKey);

项目地址: https://github.com/maythamfahmi/CryptoNet

标签:ICryptoNet,开源,UI,var,new,WPF,cryptoNet
From: https://www.cnblogs.com/sexintercourse/p/17335970.html

相关文章

  • Squirrel 类似clickonce 的工具
    微软的clickonce是一个比较强大的软件更新以及分发模式,Squirrel是一个开源的类似的工具,提供的功能相比clickonce多了不少,对于windows桌面应用的分发是一个值得选择的工具参考资料https://github.com/Squirrel/Squirrel.Windowshttps://learn.microsoft.com/en-us/visualstud......
  • python pyautogui检测鼠标点击事件
    目录pythonpyautogui检测鼠标点击事件pythonpyautogui检测鼠标点击事件在Python中,可以使用pyautogui模块来检测鼠标的点击事件,并判断左键或右键。下面是一个示例代码,可以检测鼠标的点击事件,并根据左键或右键输出不同的信息:pythonCopyimportpyautoguiwhileTrue:tr......
  • Build was configured to prefer settings repositories over project repositories b
    首先上链接:stackoverflow的正解下载了最新版的狐狸图标的AS,4.1.2版本,新建的项目默认使用的最新版本7.0.2的gradle, 在项目的build.gradle中添加项目编译需要的依赖,allprojects{repositories{google()jcenter()}} 然后,报错,编译不过。提示也说了,构建被配......
  • pypiserver 最小开源pip 私服
    pypiserver是一个轻量的pip私服,支持下载以及上传,对于pip包我们可以通过scp以及标准pip上传处理启动基于venvpython3-mvenvvenvsourcevenv/bin/activatemkdirpackagespypi-serverrun-p8080packages开发一个pythonpip包使用build......
  • Azure DevOps(一)基于 Net6.0 的 WPF 程序如何进行持续集成、持续编译
    一,引言我们是否正在为如何快速的编译、部署客户端应用程序而烦恼?这也是博主最近遇到的问题。目前博主所在公司主要做项目级的定制化开发,多以C/S架构的WPF程序为主,每次到了协助开发团队给实施团队编译好的要测试程序包时,就会出现多人协助,编译、打包好的二进制程序包pull......
  • Intellij Idea开发: 手把手教你Java GUI开发,并且打包成可执行Jar程序
    ---------------------------------------------生活的意义并不是与他人争高下,而在于享受努力实现目标的过程,结果是对自己行动的嘉奖。↑面的话,越看越不痛快,应该这么说:生活的意义就是你自己知道你要做什么,明确目标。没有目标,后面都是瞎扯!......
  • java - 使用 ProcessBuilder 调 window cmd指令太长导致找不到
     pb.command不可使用一个长字符串指令command,需要把每个指令参数分开,放入集合中Processprocess=null;ProcessBuilderpb=newProcessBuilder();//指令太长会导致无法找到文件,被视为一个完整的指令,应该每个空格都是为一个指令......
  • 最新版本 Stable Diffusion 开源 AI 绘画工具之中文自动提词篇
    目录......
  • ChatGPT 火了,一大批开源平替也来了
    ChatGPT凭一己之力让全球为AI沸腾,引发了科技巨头之间的聊天机器人军备竞赛。 众所周知,ChatGPT的背后技术是GPT(GenerativePre-trainedTransformer)模型。GPT是一种基于Transformer模型的自然语言处理模型,由OpenAI公司开发。它可以通过学习大量的自然语言数据来生成自......
  • WPF 给控件增加圆角效果注意事项
    一般都使用Border包住需要增加圆角效果的控件,但是有一些地方需要注意:<BorderCornerRadius="8"Background="Red"><TextBlockBackground="Red"Margin="4"Height="20"FontSize="8"Foreground="White"/>......